「Class Wizard」-「クラスの追加」-「タイプライブラリから」
InitInstance 内の追加のコード
#ifdef _AFXDLL
Enable3dControls();
#else
Enable3dControlsStatic();
#endif
{ // 利用をこのブロックにまとめてます
AfxOleInit() ;
IAsPln2D to2D ;
if (!to2D.CreateDispatch(_T(“PAtoMHD.AsPln2D”))) {
return FALSE ;
}
CString selFile = to2D.BrowseFile(_T(“.\\*.mhd”),_T(“mhd を選択してください”)) ;
if (!selFile.IsEmpty()) {
if (to2D.Load(selFile)) {
to2D.Save(selFile+_T(“.svg”)) ;
}
}
return FALSE ;
}
CTestDlg dlg;
…
#import を利用する方法
アプリケーションクラスのソースに
#import “C:\…\SVG\PAtoMHD\Release\PAtoMHD.tlb”
InitInstance に
{
AfxOleInit() ;
PAtoMHD::IAsPln2DPtr to2D ;
if (to2D.CreateInstance(__uuidof(PAtoMHD::AsPln2D)) != S_OK) {
return FALSE ;
}
CString selFile = LPCTSTR(to2D->BrowseFile(_T(“.\\*.mhd”),_T(“mhd を…”))) ;
if (!selFile.IsEmpty()) {
if (to2D->Load(LPCTSTR(selFile))) {
to2D->Save(LPCTSTR(selFile+_T(“.svg”))) ;
}
}
return FALSE ;
}
CreateInstance の時の PAtoMHD::AsPln2D がわからなかった.
PAtoMHD::IAsPln2D としてしまっていた.