작성일: 2012-04-06
Contents
1
.
COM 모듈만으로 COM 사용하기
1.1
.
IDL 파일 추출하기
1.2
.
IDL 파일로 TLB 파일 생성하기
1.3
.
TLB 파일 import
1.4
.
MFC에서 COM 객체 생성
1
.
COM 모듈만으로 COM 사용하기
#
1.1
.
IDL 파일 추출하기
#
1. Visual Studio 도구 OLE Viewer를 실행한다. (VS Command prompt>oleview)
2. (OLE/COM Object Viewer)File>
TypeLib
> COM dll 열기
3. File>Save As> xxx.IDL로 저장
1.2
.
IDL 파일로 TLB 파일 생성하기
#
1. VS Command prompt> midl /mktyplib203 xxx.idl
# 생성이 안 되거나 오류는 주로 경로 문제, 아니면 생성된 idl을 메모장으로 열어 오류가 없는지 확인 -> 관련 오류 찾아 제거)
1.3
.
TLB 파일 import
#
#import "xxx.tlb" named_guids using namespace XXXX;
1.4
.
MFC에서 COM 객체 생성
#
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
혹은
if (!AfxOleInit()) { AfxMessageBox(_T("OLE_INIT_FAILED")); return FALSE; }
가 호출되어 있어야 함.
예제코드)
IWorkPackagerADK* objWorkPackager = NULL; HRESULT hr = CoCreateInstance(CLSID_WorkPackagerADK, NULL, CLSCTX_INPROC_SERVER, IID_IWorkPackagerADK, reinterpret_cast
(&objWorkPackager)); if (SUCCEEDED(hr)) { objWorkPackager->OverwriteFlag = 1; objWorkPackager->IsTemp = 0; if (objWorkPackager->GetFileType(_T("C:\\drmtest\\secure\\proxy20111005.txt")) == 103) { CString sOrgFilePath = theApp.m_arFileList.GetAt(i); objWorkPackager->DoExtract(_T("C:\\Program Files\\Fasoo DRM\\CW-Packager\\fsdinit"), _T("0000000000000000"), sOrgFilePath.GetBuffer(0), sFilePath.GetBuffer(0)); sFilePath = _T("(null)"); } }
C++
COM
DLL
MFC
Retrieved from http://hyacinth.byus.net/moniwiki/wiki.php/C++/(MFC)COM dll 사용
last modified 2014-01-26 14:33:56