i_ShellExt サンプル

i_ShellExt (サムネイル表示する DLL )を利用するためのサンプルプロジェクトです.
i_ShellExt と組み合わせて利用します.
ISE.2013.11.09.zip
VS 2005 のプロジェクトで,C# や VB.NET のサンプルがあります.
EMF を求めるための関数は,クラスライブラリとして利用しています.
VS 2005 やそれ以降の VS で,ビルド可能になっていると思います.


SmpCS(C# による iShelExt.dll の利用)の説明
SmpCS

参照の追加で,Lib_ISE.dll を追加(Lib_ISE.ise.GetPathEMF を利用しない場合は必要なし).
フォームに 2 つのボタン,「開く」と「保存」を追加.Open と Save に.
OpenFileDialog と SaveFileDialog を追加.
Form1_Load , From1_Paint , Open_Click , Save_Click を追加.
Form1_Load
  縮小表示を有効にするために ShellEx\\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1} を登録.
  拡張子は,ise_cs としている.
Form1 クラスに,変数 NameEMF を追加.
  このサンプルでは,Form1_Paint で EMF を表示する様にしているため.
Form1 クラスに,CreateEMF 関数の追加.
  ドキュメント名から対応する EMF 名を求める.
    ドキュメント名.EMF とする場合は,Lib_ISE.dll は必要ない. 
    SmpCP (C++ 版) では,Lib_ISE.dll は利用しないで,ドキュメント名.EMF としている.
  ファイル名と,更新日時の文字列のメタファイルを生成している.
    文字の色は,時分秒を R , G , B として利用している.
Form_Paint
  NameEMF にファイル名があれば,それを表示.
Open_Click
  「開く」ダイアログを表示し,ファイルが指定されると上の CreateEMF を呼び出し.
    このサンプルでは指定されたファイルを開いてはいない.
Save_Click
  「保存」ダイアログを表示し,ise_cs を生成.
    ファイルの中身は特に意味はなし.ファイル名と保存日時をテキストファイルとして書込んでいる.

Smp_Net



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

SmpTxt バグ

i_ShellExt のサンプルプロジェクト SmpTxt の SmpTxtDc.cpp のバグ
  // …
  else {
    #ifdef _UNICODE
    {
      LPWSTR lpText = TextData.GetBuffer(rBuf.GetSize()+1) ;
      memset(lpText,0,(rBuf.GetSize()+1)*2) ;
      #if (_MSC_VER >= 1400)
      size_t cnvSize = 0 ;
      ::mbstowcs_s(&cnvSize,lpText,rBuf.GetSize()+1,LPSTR(rBuf.GetData()),rBuf.GetSize()) ;
      #else
      ::mbstowcs ( lpText, LPSTR(rBuf.GetData()),rBuf.GetSize()) ;
      #endif
      TextData.ReleaseBuffer() ;
      }
    #else
      // …
    #endif
    }



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