Posted: Tue Mar 25, 2003 9:28 pm
Restored from previous forum. Originally posted by jazzy.
Hi all, any1 can help on this dll C code to convert to PB:
#include
const BYTE ACTIONPARAM_NONE = 0;
const int MaxActionParams = 10;
typedef char* pCharArray[MaxActionParams];
typedef void(__stdcall *AddActionProcType)(int IDNum,char* Name, char* Hint,char Params[]/*,BYTE NumParams*/);
typedef void(__stdcall *AddFileProcType)(char*,bool AddFlag);
typedef void(__stdcall *GetVarProcType)(char* VarName, char*& Value);
typedef void(__stdcall *SetVarProcType)(char* VarName, char* Value);
typedef void(__stdcall *PlayActionProcType)(char*);
typedef bool(__stdcall *InterfaceProcType)(int InterfaceID,char* Data);
typedef void(__stdcall *dllHandlerProcType)(int Reason);
AddActionProcType xnbAddAction;
AddFileProcType nbAddFile;
GetVarProcType nbGetVar;
SetVarProcType nbSetVar;
PlayActionProcType nbPlayAction;
InterfaceProcType nbInterface;
HWND nbWinHandle;
extern "C"{
bool __declspec(dllexport) __stdcall nbEditAction(int IDNum, pCharArray& Params);
bool __declspec(dllexport) __stdcall nbExecAction(int IDNum, pCharArray& Params);
void __declspec(dllexport) __stdcall nbMessage(int MsgCode, int Reserved);
void __declspec(dllexport) __stdcall nbInitPlugIn(HWND WinHandle, char*& PlugInTitle, char*& PlugInPublisher, char*& PlugInHint);
void __declspec(dllexport) __stdcall nbRegisterScriptProcessor(PlayActionProcType PlayActionProc);
void __declspec(dllexport) __stdcall nbRegisterInterfaceAccess(InterfaceProcType InterfaceProc);
void __declspec(dllexport) __stdcall nbRegisterPlugIn(AddActionProcType AddActionProc, AddFileProcType AddFileProc,
GetVarProcType VarGetFunc, SetVarProcType VarSetFunc);
void FreeStr(char* S){
if(S!=NULL){GlobalFree(HGLOBAL(S));}
S=NULL;
}
void SetStr(char*& Dest,char* Source){
int slngth=0;while(Source[slngth]){slngth++;}
if(Dest!=NULL){GlobalFree(HGLOBAL(Dest));}
Dest=(char*)(GlobalAlloc(GMEM_FIXED,slngth+1));
strcpy(Dest,Source);
}
void nbAddAction(int IDNum,char* Name, char* Hint,char Params[],BYTE NumParams){
__asm{
push eax
xor eax,eax
mov al,NumParams
push eax
push eax
}
xnbAddAction(IDNum,Name,Hint,Params);
__asm pop eax;
}
bool __declspec(dllexport) __stdcall nbEditAction(int IDNum, pCharArray& Params)
switch(IDNum){
case 1:
break;
}
return TRUE;
}
bool __declspec(dllexport) __stdcall nbExecAction(int IDNum, pCharArray& Params)
switch(IDNum){
case 1:
break;
}
return 0;
}
void __declspec(dllexport) __stdcall nbMessage(int MsgCode, int Reserved){
switch(MsgCode){
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
}
}
void __declspec(dllexport) __stdcall nbInitPlugIn(HWND WinHandle, char*& PlugInTitle, char*& PlugInPublisher, char*& PlugInHint){
nbWinHandle = WinHandle;
SetStr( PlugInTitle, "Sample Plug-In");
SetStr(PlugInPublisher, "John Doe");
SetStr(PlugInHint, "Use this display a Windows message box");
}
void __declspec(dllexport) __stdcall nbRegisterScriptProcessor(PlayActionProcType PlayActionProc)
nbPlayAction=PlayActionProc;
void __declspec(dllexport) __stdcall nbRegisterInterfaceAccess(InterfaceProcType InterfaceProc){
nbInterface = InterfaceProc;
void __declspec(dllexport) __stdcall nbRegisterPlugIn(AddActionProcType AddActionProc, AddFileProcType AddFileProc,
GetVarProcType VarGetFunc, SetVarProcType VarSetFunc){
nbGetVar=VarGetFunc;
nbSetVar=VarSetFunc;
xnbAddAction=AddActionProc;
nbAddFile=AddFileProc;
BOOL WINAPI DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved){
if(fdwReason==DLL_PROCESS_DETACH)
Txs for any help.
Hi all, any1 can help on this dll C code to convert to PB:
#include
const BYTE ACTIONPARAM_NONE = 0;
const int MaxActionParams = 10;
typedef char* pCharArray[MaxActionParams];
typedef void(__stdcall *AddActionProcType)(int IDNum,char* Name, char* Hint,char Params[]/*,BYTE NumParams*/);
typedef void(__stdcall *AddFileProcType)(char*,bool AddFlag);
typedef void(__stdcall *GetVarProcType)(char* VarName, char*& Value);
typedef void(__stdcall *SetVarProcType)(char* VarName, char* Value);
typedef void(__stdcall *PlayActionProcType)(char*);
typedef bool(__stdcall *InterfaceProcType)(int InterfaceID,char* Data);
typedef void(__stdcall *dllHandlerProcType)(int Reason);
AddActionProcType xnbAddAction;
AddFileProcType nbAddFile;
GetVarProcType nbGetVar;
SetVarProcType nbSetVar;
PlayActionProcType nbPlayAction;
InterfaceProcType nbInterface;
HWND nbWinHandle;
extern "C"{
bool __declspec(dllexport) __stdcall nbEditAction(int IDNum, pCharArray& Params);
bool __declspec(dllexport) __stdcall nbExecAction(int IDNum, pCharArray& Params);
void __declspec(dllexport) __stdcall nbMessage(int MsgCode, int Reserved);
void __declspec(dllexport) __stdcall nbInitPlugIn(HWND WinHandle, char*& PlugInTitle, char*& PlugInPublisher, char*& PlugInHint);
void __declspec(dllexport) __stdcall nbRegisterScriptProcessor(PlayActionProcType PlayActionProc);
void __declspec(dllexport) __stdcall nbRegisterInterfaceAccess(InterfaceProcType InterfaceProc);
void __declspec(dllexport) __stdcall nbRegisterPlugIn(AddActionProcType AddActionProc, AddFileProcType AddFileProc,
GetVarProcType VarGetFunc, SetVarProcType VarSetFunc);
void FreeStr(char* S){
if(S!=NULL){GlobalFree(HGLOBAL(S));}
S=NULL;
}
void SetStr(char*& Dest,char* Source){
int slngth=0;while(Source[slngth]){slngth++;}
if(Dest!=NULL){GlobalFree(HGLOBAL(Dest));}
Dest=(char*)(GlobalAlloc(GMEM_FIXED,slngth+1));
strcpy(Dest,Source);
}
void nbAddAction(int IDNum,char* Name, char* Hint,char Params[],BYTE NumParams){
__asm{
push eax
xor eax,eax
mov al,NumParams
push eax
push eax
}
xnbAddAction(IDNum,Name,Hint,Params);
__asm pop eax;
}
bool __declspec(dllexport) __stdcall nbEditAction(int IDNum, pCharArray& Params)
switch(IDNum){
case 1:
break;
}
return TRUE;
}
bool __declspec(dllexport) __stdcall nbExecAction(int IDNum, pCharArray& Params)
switch(IDNum){
case 1:
break;
}
return 0;
}
void __declspec(dllexport) __stdcall nbMessage(int MsgCode, int Reserved){
switch(MsgCode){
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
}
}
void __declspec(dllexport) __stdcall nbInitPlugIn(HWND WinHandle, char*& PlugInTitle, char*& PlugInPublisher, char*& PlugInHint){
nbWinHandle = WinHandle;
SetStr( PlugInTitle, "Sample Plug-In");
SetStr(PlugInPublisher, "John Doe");
SetStr(PlugInHint, "Use this display a Windows message box");
}
void __declspec(dllexport) __stdcall nbRegisterScriptProcessor(PlayActionProcType PlayActionProc)
nbPlayAction=PlayActionProc;
void __declspec(dllexport) __stdcall nbRegisterInterfaceAccess(InterfaceProcType InterfaceProc){
nbInterface = InterfaceProc;
void __declspec(dllexport) __stdcall nbRegisterPlugIn(AddActionProcType AddActionProc, AddFileProcType AddFileProc,
GetVarProcType VarGetFunc, SetVarProcType VarSetFunc){
nbGetVar=VarGetFunc;
nbSetVar=VarSetFunc;
xnbAddAction=AddActionProc;
nbAddFile=AddFileProc;
BOOL WINAPI DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved){
if(fdwReason==DLL_PROCESS_DETACH)
Txs for any help.