delphi的小技巧 |
|
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
此為【BCB】【問題】找不到視窗的Hwnd值?
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=44630
之問題 參考的文章
---------------------------------------------------------------------- 前季節陳述了通過、復雜的動作擴張優剖祖o、「擴張優剖祖o對象」與被呼喚 COM對象根據被實現。 夜裡正確的解釋說、首先、用途相稱了國際huェ以色列安裝底下擴張優剖祖o對象編制、翹曲 Windows登記事被實現。 擴展張優剖祖o對象的 Windows往的登記方法關於更前季節解釋了因為、這裡、擴張優剖祖o對象的地基成為國際huェ以色列群到那個各成員函數關於更解釋特別使安靜下來。 稻田出、全部的 COM對象的基礎國際huェ以色列是 IUnknown國際huェ以色列關於更、數量多的的書籍被拿起有事也有這裡解釋減少正下面。 跟隨、IUnknown國際huェ以色列關於更這些的關聯書籍參照象請。 真實稻田、特別是拒絕還未放入時、相當國際huェ以色列的宣言 shlobj.pas(C系列語言假如是 shilobj.h)存在者徐娘底下因為注意請給我。 的、擴張優剖祖o對象的具體的常例關於更下一章煮解釋預定作為有因為那邊參照請。 2.2.1 IContextMenu國際huェ以色列 IContextMenu國際huェ以色列對象被建立關系的上下文菜單生長了裡、合並又使安靜下來時候被使用。 真實稻田、IContextMenu國際huェ以色列根據擴張優剖祖oIShellExtInit國際huェ以色列根據初始化れ不れ傻的裡籬笆。 siェru以下的3機箱(事情)關於IContextMenu國際huェ以色列使用。 1.擴張上下文菜單含時 擴張上下文菜單正在包含時、優剖祖o的姓名空地關於項(文件等)按鼠標右鍵做首先那個項類型合了默認上下文菜單被生長以後那個項類型被登記有擴張上下文菜單讀被擁擠被生長。 2.擴展名前空地關於子文件夾的上下文菜單檢索時 優剖祖o資源管理器的擴展名前空地…情況之下的文件夾面對上下文菜單生長時候IShellFolder.GetUIObjectOf呼吸拿出(提出)相當IContextMenu對象生長。 3.錯誤默認的拖拉和放下動作含時 文件系統折紙機(目錄)對於錯誤默認的拖拉和放下動作舉行時、優剖祖o擴張優剖祖o呼吸拿出。 表示數量、時間、惡劣 IContextMenu國際huェ以色列的 Delphi的宣言出示。 另外、繼續各成員函數的解釋也行為。 const SID_IContextMenu = '{000214E4-0000-0000-C000-000000000046}'; IContextMenu = interface(IUnknown) [SID_IContextMenu] function QueryContextMenu(Menu: HMENU; indexMenu, idCmdFirst, idCmdLast, uFlags: UINT): HResult; stdcall; function InvokeCommand(var lpici: TCMInvokeCommandInfo): HResult; stdcall; function GetCommandString(idCmd, uType: UINT; pwReserved: PUINT; pszName: LPSTR; cchMax: UINT): HResult; stdcall; end; [成員函數](全3函數) -------------------------------------------------------------------------------- QueryContextMenu(Menu: HMENU; indexMenu, idCmdFirst, idCmdLast, uFlags: UINT) kon文本菜單一個以上的菜單項插入。(插入物品撫養也不管) 插浸染次數做菜單的項ID idCmdFirst以上 idCmdLast以下的范圍內在的不れ加倍毛馬千。 { 參數 } Menu: 菜單駕駛盤 indexMenu: 開頭的菜單項的插入位置(0基礎) idCmdFirst: 插入了菜單項ID的下限 idCmdLast: 插入了菜單項ID的上限 uFlags: 零或者以下的旗的配合 ﹒CMF_DEFAULTONLY..... 用戶雙擊疏忽默認的動作啟動正在特別的事出示。這時菜單項追加作為不結。 ﹒CMF_EXPLORER..... 被選擇有項左側疼痛擁有(拿)事出示。上下文菜單馴狗師箱子的旗無視。 ﹒CMF_NORMAL..... 通常的動作是事出示。菜單項追加事能。 ﹒CMF_VERBSONLY..... 被選擇有項快捷方式是事出示。上下文菜單馴狗師箱子的旗無視。 { 返價 } 函數假如成功的話、HRESULT歸還。改正、那個CODE人們ba(low word)追加了菜單項的ID的最大值(idCmdFirst - 1)從的膠印表面。 -------------------------------------------------------------------------------- InvokeCommand( var lpici: TCMInvokeCommandInfo) QueryContextMenu根據被追加的菜單項被選擇的偶爾呼吸被拿出。 LoWord( integer( lpici.lpVerb ) ) [in C , LOWORD( lpici->lpVerb)]被選擇的菜單項的膠印(MenuItem ID - idCmdFirst)容納正在做。 { 參數 } lpici: 被選擇的命令關於情報容納正在做TCMInvokeCommandInfo構造身體 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 微型解釋: TCMInvokeCommandInfo構造身體 kon文本菜單的命令關於情報容納底下構造身體。 TCMInvokeCommandInfo = packed record cbSize: DWORD; fMask: DWORD; hwnd: HWND; lpVerb: LPCSTR; lpParameters: LPCSTR; lpDirectory: LPCSTR; nShow: Integer; dwHotKey: DWORD; hIcon: THandle; end; [成員] cbSize.....sizeof( TCMInvokeCommandInfo)如果不是不結 fMask.....零或者以下的旗的配合 ﹒CMIC_MASK_HOTKEY---dwHotKey人們ba有效是事出示 ﹒CMIC_MASK_ICON---hIcon人們ba有效是事出示 ﹒CMIC_MASK_FLAG_NO_UI---命令實行中央、系統UI要素表示不能事出示 hwnd.....上下文菜單的所有人窗口的駕駛盤 lpVerb.....HiWord( integer( lpVerb))=0的時、LoWord( integer( lpVerb))被選擇的菜單項ID的 idCmdFirst從的膠印。HiWord( integer( lpVerb))<> 0的時(應用軟件從呼吸被拿出的時典型關於)、實行命令的姓名(命令字符串)上漲零最後頭兒字符串往的指標 CMDSTR_NEWFOLDER( = 'NewFolder')、CMDSTR_VIEWLIST( = 'ViewList')、CMDSTR_VIEWDETAILS( = 'ViewDetails')系統根據定義過的成為 lpParameters.....參數選項 (擴張優剖祖o根據被追加的菜單項的時總是0) lpDirectory.....工作目錄選項 (擴張優剖祖o根據被追加的菜單項的時總是0) nShow.....命令窗口表示了裡應用軟件啟動特別的時ShowWindow被渡旗(SW_*) dwHotKey.....命令根據被啟動的應用軟件分配能貼近熱鍵(fMask參照) hIcon.....命令根據被啟動的應用軟件分配能貼近圖標駕駛盤(fMask參照) -------------------------------------------------------------------------------- GetCommandString(idCmd, uType: UINT; pwReserved: PUINT; pszName: LPSTR; cchMax: UINT) kon文本菜單面對命令字符串或幫助字符串歸還。 herupu字符串資源管理器的狀態欄被表示。 { 參數 } idCmd: 被選擇有菜單項ID的 idCmdFirst從的膠印 uType: 返價的種類指定參數(以下嚥喉れ嗎一個) ﹒GCS_HELPTEXT..... 幫助字符串(零最後頭兒字符串)歸還事出示 ﹒GCS_VALIDATE..... 菜單項目存在事確認正在做隻有是事出示 ﹒GCS_VERB..... 命令字符串(零最後頭兒字符串)歸還事出示 pwReserved: 預約過的(呼吸拿出時一定0) pszName: 返價容納緩沖的地址 cchMax: 上述緩沖的大小 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 2.2.2 IShellExtInit國際huェ以色列 IShellExtInit國際huェ以色列、資源管理器擴張優剖祖o對象初始化時候使用。IContextMenu或IPropSheetExt使用時候IShellExtInit國際huェ以色列安裝物品撫養花裡籬笆。 e樟職業一ra擴張優剖祖o對象使用時候、 (1)CoCreateInstance被登記的CLSID與IID_IShellExtInit呼吸拿出、 (2)那個Initialize人們ba函數呼吸拿出、 (3)那個QueryInterface人們ba函數呼吸拿出(提出)特定的國際huェ以色列(IContextMenu或IPropSheetExt等)得、叫做順序動作使安靜下來。 表示數量、時間、惡劣 IShellExtInit國際huェ以色列的 Delphi的宣言出示。 另外、繼續各成員函數的解釋也行為。 const SID_IShellExtInit = '{000214E8-0000-0000-C000-000000000046}'; IShellExtInit = interface( IUnknown) [SID_IShellExtInit] function Initialize(pidlFolder: PItemIDList; lpdobj: IDataObject; hKeyProgID: HKEY): HResult; stdcall; end; [成員函數](全1函數) -------------------------------------------------------------------------------- Initialize(pidlFolder: PItemIDList; lpdobj: IDataObject; hKeyProgID: HKEY) e樟職業一ra擴張上下文菜單、擴張屬性座、錯誤默認拖拉和放下初始化時候呼吸被拿出。 { 參數 } pidlFolder: 擴張上下文菜單、擴張屬性座對於父母文件夾、錯誤默認拖拉和放下對於目標文件夾出示TItemIDList構造身體往的指標 lpdobj: 一個以上的被選擇的(放下做了)項歸還IDataObject對象往的指標 hkeyProgID: 擴張上下文菜單、擴張屬性座對於焦點的某(有)文件項的法律學家利克酒(文件班級)、錯誤默認拖拉和放下對於目標文件夾的法律學家利克酒(文件班級)出示 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 微型解釋: TItemIDList構造身體 aItemuID的排列。 PItemIDList = ^TItemIDList; TItemIDList = packed record mkid: TSHItemID; end; TSHItemID = packed record cb: Word; abID: array[0..0] of Byte; end; [成員] cb.....項ID的大小(cb自身也含) abID.....項ID(可變長) 2.2.3 IShellPropSheetExt國際huェ以色列 擴展張屬性座或擴張控制盤屬性座頁追加或調換水灣舉行時候、資源管理器 IShellPropSheetExt國際huェ以色列使用。 表示數量、時間、惡劣 IShellPropSheetExt國際huェ以色列的 Delphi的宣言出示。 另外、繼續各成員函數的解釋也行為。 const SID_IShellPropSheetExt = '{000214E9-0000-0000-C000-000000000046}'; IShellPropSheetExt = interface(IUnknown) [SID_IShellPropSheetExt] function AddPages(lpfnAddPage: TFNAddPropSheetPage; lParam: LPARAM) : HResult; stdcall; function ReplacePage(uPageID: UINT; lpfnReplaceWith: TFNAddPropSheetPage; lParam: LPARAM): HResult; stdcall; end; [成員函數](全2函數) -------------------------------------------------------------------------------- AddPages(lpfnAddPage: TFNAddPropSheetPage; lParam: LPARAM) e樟職業一ra屬性座表示特別的時候、那個對象擴張屬性座被登記有與IShellPropSheetExt.AddPages呼吸拿出。 { 參數 } lpfnAddPage: 屬性座頁追加因此呼吸被拿出TFNAddPropSheetPage模具的叫回函數 lParam: lpfnAddPage呼吸拿出時候能立應用軟件利用任意的參數 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 微型解釋: TFNAddPropSheetPage函數模具 puro餡餅ィ座頁的追加關於叫回函數的模具。論理模具歸還。 TFNAddPropSheetPage = function( hPSP: HPropSheetPage; lParam: Longint): BOOL stdcall; [參數] hPSP:CreatePropertySheetPage函數(Commctrl.pas)根據好處們れ稻田屬性座的駕駛盤 lParam:任意的參數 -------------------------------------------------------------------------------- ReplacePage( uPageID: UINT; lpfnReplaceWith: TFNAddPropSheetPage; lParam: LPARAM) 擴展張控制盤的屬性座頁換到。 { 參數 } uPageID: 換到頁ID(CPLEXT.H頁眉文件記述) lpfnReplaceWith: 屬性座的頁調換凍僵因此呼吸被拿出TFNAddPropSheetPage模具的叫回函數 lParam: lpfnReplaceWidth呼吸拿出時候能立(應用軟件利用)任意的參數 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 2.2.4 IPersistFolder國際huェ以色列 siェru文件夾對象初始化使安靜下來。 IShellFolder.BindToObject煮被使用。 siェru的擴展名前空地(IShellFolder國際huェ以色列)安裝時候安裝物品假如踢不結國際huェ以色列。 表示數量、時間、惡劣 IPersistFolder國際huェ以色列的 Delphi的宣言出示。 另外、繼續各成員函數的解釋也行為。 [ 繼承 ] 各種持入的存儲(文件等的持久關於記憶班級)的根本班級 IPersist國際huェ以色列( In Delphi, ActiveX.pas. In C , ActiveX.h煮宣言)繼承。 const SID_IPersistFolder = '{000214EA-0000-0000-C000-000000000046}'; IPersistFolder = interface( IPersist) [SID_IPersistFolder] function Initialize(pidl: PItemIDList): HResult; stdcall; end; -------------------------------------------------------------------------------- In ActiveX.pas IPersist = interface( IUnknown) ['{0000010C-0000-0000-C000-000000000046}'] function GetClassID(out classID: TCLSID): HResult; stdcall; end; [成員函數](全2函數) -------------------------------------------------------------------------------- Initialize(pidl: PItemIDList) e樟職業一ra架子ォruda對象初始化時候呼吸被拿出。 { 參數 } pidl: 文件夾的絕對位置指定TItemIDList構造身體 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- GetClassID(out classID: TCLSID) o布隆迪ェkuto的班級ID歸還。 { 參數 } classID: 對象的班級ID { 返價 } 以下的哪一方面嗎歸還。 ﹒S_OK.....成功 ﹒E_FAIL.....失敗 2.2.5 IExtractIcon國際huェ以色列 IExtractIcon國際huェ以色列、對象的圖標歸還。 IShellFolder國際huェ以色列安裝時候 IShellFolder.GetUIObjectOf應答能夠象 IExtractIcon國際huェ以色列也安裝物品撫養花裡籬笆。 子女的國際huェ以色列根據擴張優剖祖o IPersistFile.Load根據初始化做。 稻田變速的時關於這國際huェ以色列直接連接手段必要飛螞蟻籬笆、某(有)對象另外的對象的圖標想送時等在……中直接利用事有。 e樟職業一ra的范圍疼痛文件夾被展現與、 (1)資源管理器那個IShellFolder好處文件夾結合、 (2)EnumObjects呼吸拿出(提出)子文件夾列舉、 (3)GetUIObjectOf呼吸拿出(提出)子文件夾各個的 IExtractIcon國際huェ以色列得、 叫做順序動作使安靜下來。 真實稻田、優剖祖o文件從圖標取拿出時、 (1)圖標抽出手ra生長(法律學家ri「{ AppID } \shell \ExtractIconHandler」從CLSID到手 CoCreateInstance呼吸拿出。)、 (2)GetIconLocation呼吸拿出圖標的位置情報好處、 (3)那個圖標的位置情報與 Index Extract呼吸拿出。 子女的時、焚燒 NOERROR以外復原北時、位置情報限定確切的路徑被出示有叫做前提相同邏輯(學)反復。 子女的、優剖祖o文件從圖標抽出時再稍微詳細看看出神與、(1)ProgID、ClassID找到、 (2)文件 ClassID挺義齒那個正下方的法律學家利克酒"DefaultIcon"從圖標的位置情報好處、(位置情報班級每的圖標或者例証每的圖標野母的表面正在做。)那個位置情報例証每的圖標表面正在做時、 (3)優剖祖o圖標抽出手ra生長文件從圖標取拿出、 叫做動作使……有。 siェru、首先 IExtractIcon.GetIconLocation呼吸拿出(提出)從、以後 IExtractIcon.Extract呼吸拿出說...的事重要。大帝的應用軟件圖標文件內在的圖像(心像)直接保存因為花九位置情報保存。這時、編程員 GetIconLocation喝安裝沙灘れば好變成。( Extract僅S_FALSE歸還種種使安靜下來。)跟隨、Extract圖標圖像(心像)文件內部或另外的數據庫保存時喝安裝使安靜下來。 表示數量、時間、惡劣 IExtractIcon國際huェ以色列的 Delphi的宣言出示。 另外、繼續各成員函數的解釋也行為。 const SID_IExtractIconA = '{000214EB-0000-0000-C000-000000000046}'; IExtractIconA = interface(IUnknown) [SID_IExtractIconA] function GetIconLocation(uFlags: UINT; szIconFile: PAnsiChar; cchMax: UINT; out piIndex: Integer; out pwFlags: UINT): HResult; stdcall; function Extract(pszFile: PAnsiChar; nIconIndex: UINT; out phiconLarge, phiconSmall: HICON; nIconSize: UINT): HResult; stdcall; end; IExtractIcon = IExtractIconA; [成員函數](全2函數) -------------------------------------------------------------------------------- GetIconLocation(uFlags: UINT; szIconFile: PAnsiChar; cchMax: UINT; out piIndex: Integer; out pwFlags: UINT) a肖像的位置情報歸還。 { 參數 } uFlags(in): 零或者以下的旗的配合 ﹒GIL_FORSHELL..... 圖標架子ォruda被表示 ﹒GIL_OPENICON..... 圖標打開變速爐缸文件夾面對的東西 szIconFile(out): 圖標的位置情報(零最後頭兒字符串)被歸還緩沖區往的指標 cchMax(in): 緩沖區的最大大小 piIndex(out): 圖標的索引 pwFlags(out): 被歸還零或者以下的旗的配合 ﹒GIL_DONTCACHE..... 圖標cache還未做 ﹒GIL_NOTFILENAME..... 位置情報文件名不是、圖標抽出因此 IExtractIcon.Extract方法呼吸拿出有必要 ﹒GIL_PERCLASS..... 這班級留下辦完的文件對象相同圖標使用 ﹒GIL_PERINSTANCE..... 這班級的文件對象各個自身(例証每)的圖標保持正在做 ﹒GIL_SIMULATEDOC..... 文檔圖標生長 { 返價 } 函數假如成功的話、NOERROR歸還。默認圖標使用時S_FALSE歸還。 -------------------------------------------------------------------------------- Extract(pszFile: PAnsiChar; nIconIndex: UINT; out phiconLarge, phiconSmall: HICON; nIconSize: UINT) huァ壞從圖標圖像(心像)抽出。 { 參數 } pszFile(in): 圖標的位置情報(典型確切文件往的路徑) nIconIndex(in): 圖標索引 phiconLarge(out): 圖標(大)的駕駛盤 phiconSmall(out): 圖標(細小)的駕駛盤 nIconSize(in): 圖標(大)的大小(象素) { 返價 } 函數假如成功的話、NOERROR歸還。S_FALSE歸還了時呼吸拿出了應用軟件旁邊( pszFile、nIconIndex台)圖標抽出物品假如踢不結。 2.2.6 IShellIcon國際huェ以色列 IShellFolder對象的圖標索引得因此被使用國際huェ以色列。文件夾內的對象面對圖標歸還麻利方法作為……來說、IShellIcon國際huェ以色列 IShellFolder國際huェ以色列用安裝、叫做手有。 子女的國際huェ以色列圖標文件夾對於一次隻有被生長。而且比 IExtractIcon國際huェ以色列對象每圖標被生長。 IShellFolder國際huェ以色列這國際huェ以色列安裝物品假如踢、一切的對象面對圖標得時候在……中 IShellfolder.GetUIObject被使用。 表示數量、時間、惡劣 IShellIcon國際huェ以色列的 Delphi的宣言出示。 另外、繼續各成員函數的解釋也行為。 const SID_IShellIcon = '{000214E5-0000-0000-C000-000000000046}'; IShellIcon = interface(IUnknown) [SID_IShellIcon] function GetIconOf(pidl: PItemIDList; flags: UINT; out IconIndex: Integer): HResult; stdcall; end; [成員函數](全1函數) -------------------------------------------------------------------------------- GetIconOf(pidl: PItemIDList; flags: UINT; out IconIndex: Integer) huォruda內的對象面對圖標歸還。 { 參數 } pidl: 文件夾的相對位置指定TItemIDList構造身體往的指標 flags: 零或者以下的旗的配合 ﹒GIL_FORSHELL..... 圖標架子ォruda被表示 ﹒GIL_OPENICON..... 圖標打開變速爐缸文件夾面對的東西(「打開木板(有的)狀態」「閉了狀態」兩方的圖像(心像)設置正在做時、圖標「打開木板(有的)狀態」如果不是不結。) IconIndex: 圖標的索引 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時S_FALSE歸還。 另外、以下的索引歸還事也可能。 ﹒0.....文檔(空白) ﹒1.....文檔(數據有) ﹒2.....應用軟件(擴展名一定".exe"、".com"、".bat") ﹒3.....文件夾(關閉字) ﹒4.....文件夾(開) 2.2.7 IShellLink國際huェ以色列 siェru鏈接所謂、優剖祖o的姓名空地上部的對象(總之資源管理器上部的對象)關於情報保持了對象的事說。 siェru鏈接對象的「e腸梗阻(別名)」的象管因為、用戶或應用軟件、對象的現在的姓名或位置不知道也(姓名空地嚥喉古歌們但)對象連接手段能夠。 表示數量、時間、惡劣 IShellLink國際huェ以色列的 Delphi的宣言出示。 另外、繼續各成員函數的解釋也行為。 const SID_IShellLinkA = '{000214EE-0000-0000-C000-000000000046}'; IShellLinkA = interface(IUnknown) [SID_IShellLinkA] function GetPath(pszFile: PAnsiChar; cchMaxPath: Integer; var pfd: TWin32FindData; fFlags: DWORD): HResult; stdcall; function GetIDList(var ppidl: PItemIDList): HResult; stdcall; function SetIDList(pidl: PItemIDList): HResult; stdcall; function GetDescription(pszName: PAnsiChar; cchMaxName: Integer): HResult; stdcall; function SetDescription(pszName: PAnsiChar): HResult; stdcall; function GetWorkingDirectory(pszDir: PAnsiChar; cchMaxPath: Integer): HResult; stdcall; function SetWorkingDirectory(pszDir: PAnsiChar): HResult; stdcall; function GetArguments(pszArgs: PAnsiChar; cchMaxPath: Integer): HResult; stdcall; function SetArguments(pszArgs: PAnsiChar): HResult; stdcall; function GetHotkey(var pwHotkey: Word): HResult; stdcall; function SetHotkey(wHotkey: Word): HResult; stdcall; function GetShowCmd(out piShowCmd: Integer): HResult; stdcall; function SetShowCmd(iShowCmd: Integer): HResult; stdcall; function GetIconLocation(pszIconPath: PAnsiChar; cchIconPath: Integer; out piIcon: Integer): HResult; stdcall; function SetIconLocation(pszIconPath: PAnsiChar; iIcon: Integer): HResult; stdcall; function SetRelativePath(pszPathRel: PAnsiChar; dwReserved: DWORD): HResult; stdcall; function Resolve(Wnd: HWND; fFlags: DWORD): HResult; stdcall; function SetPath(pszFile: PAnsiChar): HResult; stdcall; end; IShellLink = IShellLinkA; [成員函數](全18函數) -------------------------------------------------------------------------------- GetPath(pszFile: PAnsiChar; cchMaxPath: Integer; var pfd: TWin32FindData; fFlags: DWORD) siェru鏈接對象的路徑與文件名歸還。 { 參數 } pszFile: 優剖祖o鏈接對象的路徑與文件名被歸還緩沖區往的指標 cchMaxPath: 緩沖區的最大大小 pfd: 優剖祖o鏈接對象關於情報容納底下TWin32FindData構造身體 fFlags: 被歸還路徑情報的類型(以下的旗的組合早稻) ﹒SLGP_SHORTPATH..... 標準短的文件名(8.3手續) ﹒SLGP_UNCPRIORITY..... 文件的UNC路徑名字 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 微型解釋: TWin32FindData構造身體 FindFirstFile、FindNextFile函數根據被歸還文件情報。 huァ壞長文件名挺義齒、cFileName那個容納做。短的文件名cAlternateFileName容納做。 也下邊cAlternateFileName空洞那個ば、GetShortPathName函數短的文件名得事能。 TWin32FindDataA = record dwFileAttributes: DWORD; ftCreationTime: TFileTime; ftLastAccessTime: TFileTime; ftLastWriteTime: TFileTime; nFileSizeHigh: DWORD; nFileSizeLow: DWORD; dwReserved0: DWORD; dwReserved1: DWORD; cFileName: array[0..MAX_PATH - 1] of AnsiChar; cAlternateFileName: array[0..13] of AnsiChar; end; TWin32FindData = TWin32FindDataA; [成員] dwFileAttributes.....被發現文件的屬性(以下的旗的組合) ﹒FILE_ATTRIBUTE_ARCHIVE---a一個夏娃文件 (應用軟件箱子的旗備份文件或刪除文件對於給予) ﹒FILE_ATTRIBUTE_COMPRESSED---壓縮文件(壓縮文件夾) ﹒FILE_ATTRIBUTE_DIRECTORY---目錄 ﹒FILE_ATTRIBUTE_HIDDEN---隱含文件 ﹒FILE_ATTRIBUTE_NORMAL---屬性沒有(這旗單獨被使用) ﹒FILE_ATTRIBUTE_OFFLINE---文件的數據馬上利用不能 (文件數據離線存儲物理的被移動的事出示) ﹒FILE_ATTRIBUTE_READONLY---讀擁擠專用 ﹒FILE_ATTRIBUTE_SYSTEM---系統文件 (OS的部分嗎或OS根據排他確切被使用文件) ﹒FILE_ATTRIBUTE_TEMPORARY---臨時文件 (媒體閃光不做限定數據的幾乎內存上乘存在) ftCreationTime.....文件的編制日期和時間容納做了TFileTime構造身體 ftLastAccessTime.....文件的最後連接手段日期和時間容納做了TFileTime構造身體 ftLastWriteTime.....文件的最後更新日期和時間容納做了TFileTime構造身體 nFileSizeHigh.....文件大小的上位4字節 (正確的解釋的文件大小 = ( nFileSizeHigh * MAXDWORD) nFileSizeLow ) nFileSizeLow.....文件大小的下位4字節 (正確的解釋的文件大小 = ( nFileSizeHigh * MAXDWORD) nFileSizeLow ) dwReserved0.....已預約過 dwReserved1.....已預約過 cFileName.....長文件名(零最後頭兒字符串) cAlternateFileName.....短的文件名(零最後頭兒字符串) 微型解釋: TFileTime構造身體 100毫微秒單位戶下1601年1月1日從的過去時間64位表面使安靜下來。(UTC格式化) FindFirstFile、FindNextFile函數、這UTC格式化還未含文件系統對於TFileTime構造身體零設置使安靜下來。當場合、FileTimeToLocalFileTime函數用UTC從當地時間生長能。 真實稻田、FileTimeToSystemTime函數用當地時間從TSystemTime構造身體生長成果。 TFileTime = record dwLowDateTime: DWORD; dwHighDateTime: DWORD; end; [成員] dwLowDateTime.....…情況之下32位 dwHighDateTime.....上部32位 -------------------------------------------------------------------------------- GetIDList(var ppidl: PItemIDList) siェru鏈接對象面對項目ID清單(TItemIDList構造身體)歸還。 { 參數 } ppidl: 項目ID清單(TItemIDList構造身體)往的指標 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- SetIDList(pidl: PItemIDList) siェru鏈接對象對於項目ID清單(TItemIDList構造身體)設置使安靜下來。 子女的函數、文件不是對象(控制盤、打印機、其他的計算機等)優剖祖o鏈接設置有必要時有用。 { 參數 } pidl: 項目ID清單(TItemIDList構造身體)往的指標 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- GetDescription(pszName: PAnsiChar; cchMaxName: Integer) siェru鏈接對象關於記述(評論)歸還。 { 參數 } pszName: 記述被歸還緩沖區往的指標 cchMaxName: 緩沖區的最大大小 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- SetDescription(pszName: PAnsiChar) siェru鏈接對象記述(評論)設置使安靜下來。 { 參數 } pszName: 設置記述指指標 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- GetWorkingDirectory(pszDir: PAnsiChar; cchMaxPath: Integer) siェru鏈接對象對於工作目錄名稱歸還。 { 參數 } pszDir: 工作目錄名稱被歸還緩沖區往的指標 cchMaxPath: :緩沖區的最大大小 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- SetWorkingDirectory(pszDir: PAnsiChar) siェru鏈接對象對於工作目錄設置使安靜下來。 作品業目錄設置做表面被要求有時喝設置必要有。譬如、另外的目錄有樣板使用正在做文字處理機文書文件往優剖祖o鏈接設置時等工作目錄的設置必要。 { 參數 } pszDir: 工作目錄名稱指指標 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- GetArguments(pszArgs: PAnsiChar; cchMaxPath: Integer) siェru鏈接對象關聯命令線參數歸還。 { 參數 } pszArgs: 命令線參數被歸還緩沖區往的指標 cchMaxPath: 緩沖區的最大大小 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- SetArguments(pszArgs: PAnsiChar) siェru鏈接對象命令線參數設置使安靜下來。 kon響導那樣的特別的參數(旗)拿應用軟件往優剖祖o鏈接設置時疏忽有用。 { 參數 } pszArgs: 命令線參數指指標 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- GetHotkey(var pwHotkey: Word) siェru鏈接對象面對熱鍵歸還。 { 參數 } pwHotkey: 熱鍵(下位字節虛擬關鍵字、上位字節以下的旗的組合) ﹒HOTKEYF_ALT..... ALT鍵 ﹒HOTKEYF_CONTROL..... CTRL鍵 ﹒HOTKEYF_EXT..... Extended鍵 ﹒HOTKEYF_SHIFT..... SHIFT鍵 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- SetHotkey(wHotkey: Word) siェru鏈接對象熱鍵設置使安靜下來。 o布隆迪ェkuto特定的鍵的組合啟動想特別的時使用。 { 參數 } wHotkey: 熱鍵(GetHotkey參照) { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- GetShowCmd(out piShowCmd: Integer) siェru鏈接對象面對Show命令歸還。 { 參數 } piShowCmd: Show命令(以下嚥喉れ嗎一個) ﹒SW_SHOWDEFAULT..... 應用軟件啟動特別的了程序根據CreateProcess函數被渡的TStartupInfo構造身體被指定的? SW_旗台也是表示狀態設置使安靜下來。應用軟件箱子的旗同時ShowWindow叫出來? 自身的主要的 窗口的初期表示狀態設置物品假如踢不結。 ﹒SW_HIDE..... 窗口錯誤表示西文? 別處的窗口積極號化使安靜下來。 ﹒SW_MINIMIZE..... 被指定的窗口圖標化? Z順序其次的首位(最高的領導幹部) 水平 窗口積極號化使安靜下來。 ﹒SW_RESTORE..... 窗口積極號化表示。窗口圖標化正在做裡最大化正在做偶爾? Windows元(原來)的大小與位置復原。應用軟件? 圖標化正在做窗口復原偶爾這旗指定。 ﹒SW_SHOW..... 窗口積極號化? 現在的大小與位置表示。 ﹒SW_SHOWMAXIMIZED..... 窗口積極號化? 最大表示窗口作為表示。 ﹒SW_SHOWMINIMIZED..... 窗口積極號化? 圖標表示。 ﹒SW_SHOWMINNOACTIVE..... 窗口圖標表示。積極號 窗口活動狀態乃萬少見。 ﹒SW_SHOWNA..... 窗口現在的狀態表示。積極號 窗口活動狀態乃萬少見。 ﹒SW_SHOWNOACTIVATE..... 臨…之前的大小與位置窗口表示。積極號 窗口活動狀態乃萬少見。 ﹒SW_SHOWNORMAL..... 窗口積極號化表示。窗口圖標化正在做裡最大化正在做偶爾? Windows元(原來)的大小與位置復原。應用軟件? 開頭窗口表示於是奇怪這旗指定。 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- SetShowCmd(iShowCmd: Integer) siェru鏈接對象對於Show命令設置使安靜下來。捆根據、對象啟動時的狀態設置做。 { 參數 } iShowCmd: Show命令(GetShowCmd參照) { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- GetIconLocation(pszIconPath: PAnsiChar; cchIconPath: Integer; out piIcon: Integer) siェru鏈接對象面對圖標的路徑、索引歸還。 { 參數 } pszIconPath: 圖標含文件的路徑被歸還緩沖區往的指標 cchIconPath: 緩沖區的最大大小 piIcon: 圖標的索引 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- SetIconLocation(pszIconPath: PAnsiChar; iIcon: Integer) siェru鏈接對象面對圖標的路徑、索引設置使安靜下來。 { 參數 } pszIconPath: 圖標含文件的路徑往的指標 iIcon: 圖標的索引 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- SetRelativePath(pszPathRel: PAnsiChar; dwReserved: DWORD) siェru鏈接對象往的相對路徑設置使安靜下來。 { 參數 } pszPathRel: 新相對路徑往的指標 dwReserved: 對象識別項目ID清單(TItemIDList構造身體) { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- Resolve(Wnd: HWND; fFlags: DWORD) siェru鏈接解決。系統優剖祖o鏈接對象找到、必要那個ば那個路徑與項目ID清單(TItemIDList構造身體)更新。 子女的方法被稱為、系統現在的鏈接對象關聯被靠的路徑歸還、那個路徑有對象找到。系統對象看到鏈接解決、焚燒對象看四指並排的長度們不れば、相同目錄的文件名不同生長日期和時間與屬性相同文件找到。 祖先れ但看四指並排的長度們不れば、輔助銀行目錄對於也重新返回確切同樣的動作使安靜下來。 最最後確切對象看四指並排的長度們不れば、用戶對象的位置指定特別的對話框表示。應用軟件SLR_NO_UI旗根據這對話框錯誤表示事能。 { 參數 } Wnd: :最終優剖祖o鏈接的解決失敗了時表示對話框的父母窗口作為使用窗口駕駛盤 fFlags: 以下出示旗的組合 ﹒SLR_ANY_MATCH..... 鏈接解決、用戶從的情報必要的時在……中對話框表示 ﹒SLR_NO_UI..... 用戶從的情報必要的時但對話框不表示(這旗被指定的時、fFlags的上位字暫停到的時間毫克秒單位指定。捆零的時、默認作為3秒暫停時間鄰。暫停時間公允(在~~中)對象沒被發現時、就那樣函數從返回。) ﹒SLR_UPDATE..... 鏈接對象被變更木板(有的)時、鏈接往的路徑與項目ID清單更新 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 -------------------------------------------------------------------------------- SetPath(pszFile: PAnsiChar) siェru鏈接對象的路徑與文件名設置使安靜下來。 { 參數 } pszFile: 新路徑往的指標 { 返價 } 函數假如成功的話、NOERROR歸還。失敗了時OLE被定義的錯誤代碼歸還。 2.2.8 IShellExecuteHook國際huェ以色列 ShellExecute、ShellExecuteEx的動作擴張國際huェ以色列。 表示數量、時間、惡劣 IShellExecuteHook國際huェ以色列的 Delphi的宣言出示。 另外、繼續各成員函數的解釋也行為。 const SID_IShellExecuteHookA = '{000214F5-0000-0000-C000-000000000046}'; IShellExecuteHookA = interface(IUnknown) [SID_IShellExecuteHookA] function Execute(var ShellExecuteInfo: TShellExecuteInfo): HResult; stdcall; end; IShellExecuteHook = IShellExecuteHookA; [成員函數](全1函數) -------------------------------------------------------------------------------- Execute(var ShellExecuteInfo: TShellExecuteInfo) ko男人do搶奪、另外的動作特別的鉤提供。 { 參數 } ShellExecuteInfo: ShellExecuteEx函數渡TShellExecuteInfo構造身體 { 返價 } 鉤安裝做義齒NOERROR、安裝做摟的假如踢S_FALSE被歸還。這些以外的錯誤的時OLE被定義的錯誤代碼歸還。 2.2.9 ICopyHook國際huェ以色列 ko棒球鉤、優剖祖o通過文件系統目錄或者印刷商對象復制、移動、刪除、ri名字使安靜下來作為時呼吸被拿出。 子女れ優剖祖o的操縱前呼吸被拿出因為、那個操縱不如實行、取消事能。 真實稻田、一的文件夾對於復數的復制鉤設置事能。 的、優剖祖o復制鉤直接初始化使安靜下來因為、IShellExtInit國際huェ以色列等必要沒有。 表示數量、時間、惡劣 ICopyHook國際huェ以色列的 Delphi的宣言出示。 另外、繼續各成員函數的解釋也行為。 const SID_IShellCopyHookA = '{000214EF-0000-0000-C000-000000000046}'; ICopyHookA = interface(IUnknown) [SID_IShellCopyHookA] function CopyCallback(Wnd: HWND; wFunc, wFlags: UINT; pszSrcFile: PAnsiChar; dwSrcAttribs: DWORD; pszDestFile: PAnsiChar; dwDestAttribs: DWORD): UINT; stdcall; end; ICopyHook = ICopyHookA; [成員函數](全1函數) -------------------------------------------------------------------------------- CopyCallback(Wnd: HWND; wFunc, wFlags: UINT; pszSrcFile: PAnsiChar; dwSrcAttribs: DWORD; pszDestFile: PAnsiChar; dwDestAttribs: DWORD) siェru根據目錄或者打印機對象的復制、移動、刪除、ri名字操縱的是否得當歸還。 { 參數 } Wnd: 用戶國際huェ以色列表示有必要時的那個父母窗口的駕駛盤 wFunc: 操縱的種類(以下嚥喉れ嗎一個) ﹒FO_COPY..... pszSrcFile的文件pszDestFile的位置往復制 ﹒FO_DELETE..... pszSrcFile的文件刪除 ﹒FO_MOVE..... pszSrcFile的文件pszDestFile的位置往移動 ﹒FO_RENAME..... pszSrcFile的文件ri名字 ﹒PO_DELETE..... pszSrcFile的打印機 |
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |