Platform SDK: DLLs, Processes, and Threads |
Use the CallProcEx32W function in 16-bit code to call an entry-point function in a Win32 DLL.
DWORD FAR CallProcEx32W( DWORD nParams, // number of parameters passed DWORD fAddressConvert, // bit mask DWORD lpProcAddress, // the DLL function to be called DWORD param1 // parameter for DLL function ... // up to 32 function parameters );
Value | Meaning |
---|---|
CPEX_DEST_STDCALL | The function uses the standard-call calling convention. This is the default. |
CPEX_DEST_CDECL | The function uses the C calling convention. |
Returns the return value from the 32-bit entry-point function represented by lpProcAddress. The return value can also be zero under the following conditions:
CallProcEx32W does not automatically fix global memory handles that are translated to 0:32 pointers. Therefore, you must call the GlobalFix or GlobalWire function on the handle first and GlobalUnfix and GlobalUnwire afterward.
Windows 95/98: Global compaction can move memory blocks at any time while the current thread is executing 32-bit code. Because of this, not fixing segments before calling the target function works in Windows NT/Windows 2000, but may cause race conditions in Windows 95 or Windows 98.
Windows NT/2000: Requires Windows NT 3.1 or later.
Windows 95/98: Requires Windows 95 or later.
Header: Declared in Wownt16.h.
Generic Thunks Overview, 16-bit Generic Thunk Functions, GetProcAddress32W