2009-01-08 44 views
2

指令上訪問接口的應用程序,在平原 C/C++ 而不使用CoGetClassObject()在C - 訪問COM對象接口

  • MFC
  • ATL
  • WTL

基本上,我想利用一個COM對象。

工作示例源代碼或指導 - 至使用(功能)一個COM對象,而不是創建一個COM服務器。

問候

+0

我真的建議你看看ATL。 (WTL不會幫助; MFC膨脹)CComPtr,CComBSTR,CComVariant這3個輔助類將使您的生活變得更加輕鬆,並且對於使用其他COM對象,您不需要太多。 – 2009-01-08 14:16:53

+0

嗨,我會考慮ATL - 爲了簡單起見,但我寧願/想要手動學習/處理所有控制。謝謝:) – Aaron 2009-01-08 14:53:48

回答

4

這裏是純C++一個簡單的例子:

CoInitialize(NULL); // absolutely essential: initialize the COM subsystem 
IMyInterface* pIFace; 
// create the object and obtain a pointer to the sought interface 
CoCreateInstance(CLSID_MyObject, NULL, CLSCTX_ALL, IID_IMyInterface, &pIFace); 
pIFace->MethodIReallyNeed(); // use the object 
pIFace->Release(); // free the object 
CoUninitialize(); // cleanup COM after you're done using its services 

從這裏複製:COM Basics

1

好吧,假設你有接口聲明,所有你需要的是,以初始化COM,然後調用CoCreateInstance得到您的實例(並使用它),然後視CoUnInitialize對CoInitialize的調用不初始化COM。

+0

CasperOne,你有一個小例子?我對Windows編程不熟悉 - 我來自Linux世界... – Aaron 2009-01-08 05:15:19

0

避免codeproject(新手),並查看有關COM的所有MSDN章節。

一切都在那裏,以噸C和C++示例代碼

0

剛上COM(唐框或戴爾Rougerson)是指一本好書。這是COM World的良好起點。