From my knowledge, this should work:::
ITypeLib Viewer output:
library MyServerLib
{
importlib("stdole2.tlb");
interface IOPCServer;
interface IOPCBrowseServerAddressSpace;
...
[
uuid(E31E5782-636C-11D2-B326-0000A0080AC8),
helpstring("OPC Server Class")
]
coclass OPCServer {
[default] interface IOPCServer;
interface IOPCBrowseServerAddressSpace;
};
[
odl,
uuid(39C13A4D-011E-11D0-9675-0020AFD8ADB3)
]
interface IOPCServer : IUnknown {
HRESULT _stdcall AddGroup(.....
};
...
[
odl,
uuid(39C13A4F-011E-11D0-9675-0020AFD8ADB3)
]
interface IOPCBrowseServerAddressSpace : IUnknown {
HRESULT _stdcall QueryOrganization([out] tagOPCNAMESPACETYPE* pNameSpaceType);
....
};
....
};
C++ code::>
const CLSID CLSID_OPCServer = {0xE31E5782,0x636C,0x11D2,{0xB3,0x26,0x00,0x00,0xA0,0x08,0x0A,0xC8}};
const IID IID_IOPCBrowseServerAddressSpace = { 0x39c13a4f,0x011e,0x11d0,{ 0x96,0x75,0x00,0x20,0xaf,0xd8,0xad,0xb3 } };
hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
hr = CoCreateInstance( CLSID_OPCServer, NULL, CLSCTX_SERVER,
IID_IUnknown, (void **) &(p2sPtrs->pServer) );
hr = p2sPtrs->pServer->QueryInterface(IID_IOPCBrowseServerAddressSpace, (void **)&m_spBrowse);
How do I determine what the issue is?
Everything looks correct to me.
Is there a step missing?
What I have tried:
Tried initializing
COINIT_APARTMENTTHREADED
with no difference.