Programming/ActiveX
[펌] 헤더정보를 이용한 C++에서의 컴포넌트(Component) 사용방법
smok95
2008. 4. 15. 11:50
반응형
1. 컴포넌트 개발자가 배포하는 프로젝트명.h 파일을 사용하는 방법
프로젝트명.h -> 컴포넌트의 CLSID, 인터페이스에 대한 class 헤더, IID가 포함됨.
// 프로젝트명.h
MIDL_INTERFACE("FFAA434B-F6F5-4029-96FB-8876893C9EAA")
IBlockSocket : public IDispatch
{
…
};
…
class DECLSPEC_UUID("BF9B9364-386A-4527-A03D-9254F59F5B9B") BlockSocket;
이러한 정보를 이용 인터페이스 포인터 선언 후 CoCreateInstance()함수를 호출하여 시스템에 등록된 컴포넌트 객체를 동적으로 생성한다.
IBlockSocket *pISocket = NULL;
hr = ::CoCreateInstance(__uuidof(BlockSocket)
, NULL
, CLSCTX_INPROC_SERVER
, __uuidof(IBlockSocket)
, (void**)&pISocket);
HRESULT hr = pISocket->Connect(CComBSTR("127.0.0.1"), 5000);
If(FAILED(hr))
{
// ERROR
}
…
pISocket->Release();
- 참고 -
/* RpcNdr.h */
#define MIDL_INTERFACE(x) struct DECLSPEC_UUID(x) DECLSPEC_NOVTABLE
/* WinNT.h */
#ifndef DECLSPEC_UUID
#if (_MSC_VER >= 1100) && defined (__cplusplus)
#define DECLSPEC_UUID(x) __declspec(uuid(x))
#else
#define DECLSPEC_UUID(x)
#endif
#endif
__declspec(uuid())
-> VC++ 키워드로써 COM 개체나 인터페이스에 GUID를 지정할 수 있게 한다.
[출처] 헤더정보를 이용한 C++에서의 컴포넌트(Component) 사용방법|작성자 꾸쑝
반응형