Use the following or PowerBASIC's CALL DWORD syntax.
Code:
$IID_ICLRMETAHOST = GUID$("{D332DB9E-B9B3-4125-8207-A14884F53216}") $CLSID_CLRMETAHOST = GUID$("{9280188D-0E8E-4867-B30C-7FA83884E8DE}") LOCAL classid AS GUID LOCAL riid AS GUID LOCAL hLib AS DWORD LOCAL lpfn AS DWORD LOCAL pMetaHost AS DWORD LOCAL hr AS LONG 'ICLRMetaHost *pMetaHost = NULL; 'HRESULT hr = CLRCreateInstance(CLSID_CLRMetaHost, ' IID_ICLRMetaHost, (LPVOID*)&PMETAHOST); hLib = LoadLibrary("mscoree.dll") IF hLib THEN MSGBOX "found libary" lpfn = GetProcAddress(hLib, "CLRCreateInstance") IF lpfn THEN MSGBOX "found function" classid = $CLSID_CLRMETAHOST riid = $IID_ICLRMETAHOST ! lea eax, pMetaHost ! push eax ! lea eax, riid ! push eax ! lea eax, classid ! push eax ! call lpfn ! mov hr, eax IF hr = %S_OK THEN MSGBOX "It worked!" END IF END IF FreeLibrary hLib END IF
Comment