1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
// MIDL_DEFINE_GUID(CLSID, CLSID_CListObject,0x2AB23F66,0xE1C9,0x4316,0xA2,0x10,0xD4,0xC6,0xA1,0x06,0xE5,0x9A);
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
// Initialize OLE libraries ou CoInitialize(NULL);
if (!AfxOleInit())
{
sprintf(chBuf, "erreur OLE init "); m_Key = m_Journal.WriteJournal(chBuf); // JOURNAL
_tprintf(_T("Fatal Error: OLE initialization failed\n"));
return 0;
}
AfxEnableControlContainer(); // */
CoInitialize(NULL);
..
}
bool CMyService::OnInit(void)
{
return CreateListObject();
}
bool CMyService::CreateListObject()
{
// return false;
m_pListObjet = NULL;
sprintf(chBuf, "avant CoCreateInstance, m_pListObjet = %x ", m_pListObjet); m_Key = m_Journal.WriteJournal(chBuf); // JOURNAL
HRESULT hr = ::CoCreateInstance(CLSID_CListObject,
NULL,
CLSCTX_INPROC_SERVER,
IID_IUnknown,
(LPVOID*)&m_pListObjet);
// return false;
if (FAILED(hr)) {
DWORD err = GetLastError();
switch (err) {
case S_OK :
sprintf(chBuf, "CoCreateInstance return S_OK"); m_Journal.WriteJournal(chBuf); // JOURNAL
break;
case REGDB_E_CLASSNOTREG:
sprintf(chBuf, "REGDB_E_CLASSNOTREG"); m_Journal.WriteJournal(chBuf); // JOURNAL
break;
case CLASS_E_NOAGGREGATION:
sprintf(chBuf, "CLASS_E_NOAGGREGATION"); m_Journal.WriteJournal(chBuf); // JOURNAL
break;
case CO_E_CLASSSTRING:
sprintf(chBuf, "CO_E_CLASSSTRING"); m_Journal.WriteJournal(chBuf); // JOURNAL
break;
case E_NOINTERFACE :
sprintf(chBuf, "E_NOINTERFACE"); m_Journal.WriteJournal(chBuf); // JOURNAL
break;
default: break;
}
sprintf(chBuf, "FAILED(hr) m_pListObjet = %x ", m_pListObjet); m_Journal.WriteJournal(chBuf, m_Key); // JOURNAL
}
ASSERT(m_pListObjet);
...
} |
Partager