컴포넌트(COM)
-
모니커컴포넌트(COM)/설정 2009. 2. 14. 17:38
A moniker is just a nickname that is used to make an object more familiar and recognizable. 모니커는 특정 COM 객체를 지정하는 COM 기술의 한 방식 모니커의 가장 큰 장점은 같은 컴퓨터 안에 존재하는 객체이건 다른 컴퓨터에 존재하는 객체이건 간에 사용하는 방법이 같다는 점 OLE 파일 모니커 컴포지트 모니커 아이템 모니커 안티 모니커 포인터 모니커 클래스 모니커 비동기 모니커(Asynchronous Moniker) URL 모니커 IMoniker ::CreateURLMoniker() .BindToStorage() HRESULT AddGraphToRot(IUnknown *pUnkGraph, DWORD *pdwRegister) { I..
-
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..
-
ATL로 Aggregation 구현하기컴포넌트(COM)/Aggregation 2008. 11. 27. 00:09
[ object, uuid(0672F710-52C8-4B5E-8942-61C354AAB91A), dual, helpstring("IRadius Interface"), pointer_default(unique) ] interface IRadius : IDispatch { [id(1), helpstring("method Radius")] HRESULT Radius([in] int x, [in] int y, [out, retval] double *z); }; [ object, uuid(1F37A7CC-582F-4A1D-9316-AE95F03E6860), dual, helpstring("ISimpleCalc Interface"), pointer_default(unique) ] interface ISimpleCa..
-
ATL로 Containment 구현하기컴포넌트(COM)/Containment 2008. 11. 26. 23:33
import "oaidl.idl"; import "ocidl.idl"; [ object, uuid(7059A459-EAA6-497E-9459-2AD61676A1AB), dual, helpstring("IRadius Interface"), pointer_default(unique) ] interface IRadius : IDispatch { [id(1), helpstring("method Radius")] HRESULT Radius([in] int x, [in] int y, [out, retval] double *z); }; [ object, uuid(1F37A7CC-582F-4A1D-9316-AE95F03E6860), dual, helpstring("ISimpleCalc Interface"), point..
-
MFC로 Aggregation 구현하기컴포넌트(COM)/Aggregation 2008. 11. 26. 23:11
DECLARE_INTERFACE_(ISimpleCal, IUnknown) { STDMETHOD_(int, Sum)() PURE; STDMETHOD_(int, Sub)() PURE; }; DECLARE_INTERFACE_(IRadius, IUnknown) { STDMETHOD(Radius)(int x, int y, double* z) PURE; }; #include "Interface.h" class CSimpleCal2 : public CCmdTarget { ... // Attributes public: IUnknown* m_pAgrUnknown; ... // Implementation protected: virtual BOOL OnCreateAggregates(); virtual ~CSimpleCal2..