컴포넌트(COM)/COM
-
Custom Interface COM 클라이언트컴포넌트(COM)/COM 2008. 12. 17. 23:17
objbase.h #if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM WINOLEAPI CoInitializeEx(LPVOID pvReserved, DWORD dwCoInit); #endif // DCOMCoInitialize() CoUninitialize() CoCreateInstance() COM 개체를 생성하고 인터페이스 포인터를 얻는다. 생성된 개체는 인터페이스 포인터에 레퍼런스 카운트된다. IUnknown .QueryInterface() .AddRef() .Release() // C++ DECLARE_INTERFACE_(ICalculator, IDispatch) { STDMETHOD(Add)(THIS_ long a, long b, lon..
-
커스텀 인터페이스 COM 클래스 - C++컴포넌트(COM)/COM 2008. 11. 20. 00:07
IDL GUID 생성 도구 UUIDGEN.EXE(Console) GUIDGEN.EXE(GUI) CoTaskMemAlloc() Win32 Dynamic-Link Library 형식의 프로젝트를 만든다. #include //#include static HMODULE s_hModule = NULL ; static long s_cServerLocks = 0; BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { // { switch(ul_reason_for_call) { case DLL_PROCESS_ATTACH: s_hModule = (HMODULE)hModule; break; } // } return TRU..
-
커스텀 인터페이스 COM 클래스 - ATL컴포넌트(COM)/COM 2008. 11. 19. 23:45
CComObjectRoot CComObjectRootEx .InernalAddRef() .InernalRelease() .InernalQueryInterface() CComCoClass 클래스 팩토리 CComObject IUnknown .CreateInstance() // static CComEnum IEnum{XXX} .Init() AtlFlagCopy 1. [ATL COM AppWizard] 옵션으로 DLL 타입의 새로운 프로젝트를 생성한다. 2. [ATL Object Wizard] 로 COM 클래스를 생성한다. // [Insert / New ATL Objects] [Objects|Simple Object] 항목 [Names|C++|Short Name]에 이름을 준다. 3. 생성된 인터페이스의 콘텍스..