home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1998 March
/
VPR9803B.ISO
/
APUPDATE
/
VC
/
Tx300b
/
TX300B.LZH
/
SHELLAPI.C
< prev
next >
Wrap
C/C++ Source or Header
|
1997-03-27
|
2KB
|
91 lines
// WZ EDITOR 標準TLL shell.dll サポート TLL(最低限)
// Thanks dieさん
//{###シェルサポート}
//SHELL.DLLで提供されている機能の一部をWZマクロから使えるようにします
//・ドラッグアンドドロップのクライアントになる機能
//・関連付け実行機能
//thanks dieさん
// 950526 apidb対応 by TY
#pragma TLL
#include "wintxx.h"
#export
#ifdef __FLAT__
extern "shell32.dll"
#else
extern "shell.dll"
#endif
{
DECLARE_HANDLE(HDROP);
UINT WINAPI
DragQueryFile(
HDROP hDrop, UINT iFile, LPSTR lpszFile, UINT cbFile
);
BOOL WINAPI
DragQueryPoint(
HDROP hDrop, POINT FAR* lppt
);
void WINAPI
DragFinish(
HDROP hDrop
);
void WINAPI
DragAcceptFiles(
HWND hwnd, BOOL fAccept
);
HINSTANCE WINAPI
ShellExecute(
HWND hwnd, LPCSTR lpOp,
LPCSTR lpFile, LPCSTR lpParam, LPCSTR lpDir, int show
);
HINSTANCE WINAPI FindExecutable(
LPCSTR lpFile, LPCSTR lpDir, LPSTR lpResult
);
}
#endexport
void TXAPI shellDragQueryFileOnce(HDROP hDrop, mchar* pszFile, int cbFile)
{
// 簡易ドロップファイル受付け
// 一個だけファイルを受け付けるならこれを使うと簡単。
// hDrop: ドロップ構造体。WM_DROPFILES の wParam。
// pszFile: ファイル名を取り込むバッファ。
// cbFile: バッファ長
DragQueryFile(hDrop, 0, pszFile, cbFile);
DragFinish(hDrop);
}
void TXAPI shellDragAcceptFiles(BOOL fAccept)
{
// ファイルドロップ許可
// Wz のベースウィンドウに対してファイルドロップの設定を行う。
// hwndtext を使用しないのはアイコン化時にも受け付けたいため。
// 実際の WM_DROPFILES メッセージを受け付けるためには __wndprocbase()
// で処理を行う必要がある。
// fAccept: TRUE ならファイルドロップを許可する
DragAcceptFiles(text->hwndbase, fAccept);
}
BOOL TXAPI shellExecute(mchar* pszFile, mchar* pszOp)
{
// shellExecute -- 関連付け実行
// Windows システムの拡張子関連付け情報にもとづいてファイルを
// 実行する。オペレーションは "open" と "print" があるが、どれが
// サポートされているかはアプリによる。(regedit /v すれば情報を
// 調べることは可能。)
// pszFile: ファイル名(拡張子関連付けされているもの)
// pszOp: "open" なら実行、"print" なら印刷
HINSTANCE hInst = ShellExecute(
text->hwndbase, pszOp,
pszFile, NULL, NULL, SW_SHOW);
return (hInst < HINSTANCE_ERROR) ? FALSE : TRUE;
}