[C++] COM 연동 샘플 소스

#import "fileName.tlb" no_namespace rename ("GetUserName","GetUserNameA")

void Function()
{
	// 프로젝트 폴더의 소스 파일이 있는 폴더 내 'fileName.tlb' 파일 수정
	// 해당 'fileName.tlb' 파일에 맞춰서 'INTERFACE', 'COCLASS' 수정
	// IDL 파일에서 interface INTERFACE : IDispatch
	// IDL 파일에서 coclass COCLASS
	INTERFACE * interface = NULL;

	if (interface == NULL)
	{
		HRESULT hr;

		hr = ::CoInitialize(NULL);

		if (SUCCEEDED(hr))
		{
			hr = ::CoCreateInstance(__uuidof(COCLASS), NULL, CLSCTX_LOCAL_SERVER, __uuidof(INTERFACE), (void**)&interface);

			if (FAILED(hr))
			{
				MessageBoxA(NULL, "COM 객체 생성 실패", "lpCaption", MB_OK);

				return;
			}
			else
			{
				interface->FuncCall();

				::CoUninitialize();
			}
		}
	}

	return;
}

댓글

이 블로그의 인기 게시물

[NSIS] 32비트와 64비트 모듈 등록하는 법. (regsvr32)

[Visual Studio] Windows 7 에서 Visual Studio 6.0 디버그 시 프로세스 좀비되는 증상 해결 방법