[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;
}

댓글

이 블로그의 인기 게시물

WOL(Wake On Lan) 기능 사용

시간에 요일 표시