I created a simple 64bit COM object with one method for testing purposes. When I try to create the COM object using CoCreateInstance_ in PB 6.12 64bit it crashes the debugger and I never receive a result. It works if I use PB 5.73 64 bit. I also works if I compile it as a 32 bit MT dll and use PB 6.12 32bit. So there is something wrong with PB 6.12 64bit.
I can supply all the files needed for testing. The COM object has one method called Test. You call this method with any string and the return value should show you the string you passed to the method.
Code: Select all
Macro DEFINE_GUID(Name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Global Name.GUID
Name\Data1 = l
Name\Data2 = w1
Name\Data3 = w2
Name\Data4[0] = b1
Name\Data4[1] = b2
Name\Data4[2] = b3
Name\Data4[3] = b4
Name\Data4[4] = b5
Name\Data4[5] = b6
Name\Data4[6] = b7
Name\Data4[7] = b8
EndMacro
;
#CLSCTX_INPROC_SERVER = $01
; COMTest
;
;{CA49C824-2FFA-4AF4-ADA3-D06A3CB9DBC6}
DEFINE_GUID(CLSID_comtest, $CA49C824, $2FFA, $4AF4, $AD, $A3, $D0, $6A, $3C, $B9, $DB, $C6)
;{85A1E677-278F-469C-BAF5-0ADCC3966678}
DEFINE_GUID(IID_comtest, $85A1E677, $278F, $469C, $BA, $F5, $0A, $DC, $C3, $96, $66, $78)
Interface comTest Extends IDispatch
Test(String.p-bstr, ReturnValue.i)
EndInterface
Global *goVFP.comTest,*ReturnPtr
Debug CoInitializeEx_(0, #COINIT_MULTITHREADED)
Debug CoCreateInstance_(@CLSID_comtest, 0, #CLSCTX_INPROC_SERVER, @IID_comTest, @*goVFP)
*goVFP\Test("Received",@*ReturnPtr)
Debug PeekS(*ReturnPtr,-1,#PB_Unicode)