i_3DV 2014.03

3D データのビューアです.
3DS , OBJ , X3D , STL , DXF などの読込に対応しています.
テクスチャは, BMP , TGA , 一部の JPG のみの対応です.
読み込んだ 3D データのサムネイルは i_ShellExt に対応しています.
i_ShellExt により,エクスプローラで 3D データのサムネイル表示が可能になります.
i3DV_Thumb_7_10_6
i_3DV.2014.03.09.zip
i_3DV.2014.03.11.zip
頂点の法線を利用する様に変更しました.
Vector




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

DocTh 2013.12.07

i_ShellExt に含んでいる,ドキュメントに対するサムネイルを登録する exe です.
DocTh_2013_12_07
ドロップされた exe やドキュメントを記憶する様に変更しました.
Win 8 などで,デスクトップアプリケーションの起動に利用できます.
DocTh.2013.12.07.zip



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

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技術ブログへ