home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1998 August / VPR9808B.BIN / APUPDATE / VC / Tx300d / TX300D.LZH / SHELLAPI.C < prev    next >
C/C++ Source or Header  |  1997-03-27  |  2KB  |  91 lines

  1. // WZ EDITOR 標準TLL shell.dll サポート TLL(最低限)
  2. // Thanks dieさん
  3.  
  4. //{###シェルサポート}
  5. //SHELL.DLLで提供されている機能の一部をWZマクロから使えるようにします
  6. //・ドラッグアンドドロップのクライアントになる機能
  7. //・関連付け実行機能
  8. //thanks dieさん
  9.  
  10. // 950526 apidb対応 by TY
  11.  
  12. #pragma TLL
  13.  
  14. #include "wintxx.h"
  15.  
  16. #export
  17.     #ifdef __FLAT__
  18.     extern "shell32.dll"
  19.     #else
  20.     extern "shell.dll"
  21.     #endif
  22.     {
  23.         DECLARE_HANDLE(HDROP);
  24.         UINT WINAPI
  25.             DragQueryFile(
  26.                 HDROP hDrop, UINT iFile, LPSTR lpszFile, UINT cbFile
  27.             );
  28.         BOOL WINAPI
  29.             DragQueryPoint(
  30.                 HDROP hDrop, POINT FAR* lppt
  31.             );
  32.         void WINAPI
  33.             DragFinish(
  34.                 HDROP hDrop
  35.             );
  36.         void WINAPI
  37.             DragAcceptFiles(
  38.                 HWND hwnd, BOOL fAccept
  39.             );
  40.         HINSTANCE WINAPI
  41.             ShellExecute(
  42.                 HWND hwnd, LPCSTR lpOp,
  43.                 LPCSTR lpFile, LPCSTR lpParam, LPCSTR lpDir, int show
  44.             );
  45.         HINSTANCE WINAPI FindExecutable(
  46.                 LPCSTR lpFile, LPCSTR lpDir, LPSTR lpResult
  47.             );
  48.     }
  49. #endexport
  50.  
  51. void TXAPI shellDragQueryFileOnce(HDROP hDrop, mchar* pszFile, int cbFile)
  52. {
  53. // 簡易ドロップファイル受付け
  54. //     一個だけファイルを受け付けるならこれを使うと簡単。
  55. //    hDrop: ドロップ構造体。WM_DROPFILES の wParam。
  56. //    pszFile: ファイル名を取り込むバッファ。
  57. //    cbFile: バッファ長
  58.     DragQueryFile(hDrop, 0, pszFile, cbFile);
  59.     DragFinish(hDrop);
  60. }
  61.  
  62.  
  63. void TXAPI shellDragAcceptFiles(BOOL fAccept)
  64. {
  65. // ファイルドロップ許可
  66. //     Wz のベースウィンドウに対してファイルドロップの設定を行う。
  67. //    hwndtext を使用しないのはアイコン化時にも受け付けたいため。
  68. //    実際の WM_DROPFILES メッセージを受け付けるためには __wndprocbase()
  69. //    で処理を行う必要がある。
  70. //    fAccept: TRUE ならファイルドロップを許可する
  71.     DragAcceptFiles(text->hwndbase, fAccept);
  72. }
  73.  
  74.  
  75. BOOL TXAPI shellExecute(mchar* pszFile, mchar* pszOp)
  76. {
  77. // shellExecute -- 関連付け実行
  78. //     Windows システムの拡張子関連付け情報にもとづいてファイルを
  79. //    実行する。オペレーションは "open" と "print" があるが、どれが
  80. //    サポートされているかはアプリによる。(regedit /v すれば情報を
  81. //    調べることは可能。)
  82. //    pszFile: ファイル名(拡張子関連付けされているもの)
  83. //    pszOp: "open" なら実行、"print" なら印刷
  84.     HINSTANCE hInst = ShellExecute(
  85.                             text->hwndbase, pszOp,
  86.                             pszFile, NULL, NULL, SW_SHOW);
  87.     return (hInst < HINSTANCE_ERROR) ? FALSE : TRUE;
  88. }
  89.  
  90.  
  91.