Iwao Dev

気付いたことをメモしています.

この画面は、簡易表示です

2012年5月17日

VC 6 MFC でオートメーション利用

「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 としてしまっていた.


Dr. GUI、コンポーネント、COM、および ATL を使う

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ



    top

    %d人のブロガーが「いいね」をつけました。