shlobj.zc

来自「实现树形结构」· ZC 代码 · 共 66 行

ZC
66
字号
//[c]
import "windef"
import "windows"
//[c]
public [name="c", call="__stdcall"]

struct LPSHITEMID
	cb: USHORT
	abID: [1] BYTE
end
typedef SHITEMID = local LPSHITEMID
typedef LPCSHITEMID = LPSHITEMID

struct LPITEMIDLIST
	mkid: SHITEMID
end
typedef ITEMIDLIST = local LPITEMIDLIST
typedef LPCITEMIDLIST = LPITEMIDLIST

typedef BFFCALLBACK = {HWND,UINT,LPARAM,LPARAM} int

struct LPBROWSEINFOA
	hwndOwner: HWND
	pidlRoot: LPCITEMIDLIST
	pszDisplayName: LPSTR
	lpszTitle: LPCSTR
	ulFlags: UINT
	lpfn: BFFCALLBACK
	lParam: LPARAM
	iImage: int
end
typedef BROWSEINFOA = local LPBROWSEINFOA
typedef PBROWSEINFOA = LPBROWSEINFOA

import func SHBrowseForFolderA(PBROWSEINFOA): LPITEMIDLIST
import func SHGetPathFromIDListA(LPCITEMIDLIST, LPSTR): BOOL

equ BIF_RETURNONLYFSDIRS = 1
equ BIF_DONTGOBELOWDOMAIN = 2
equ BIF_STATUSTEXT = 4
equ BIF_RETURNFSANCESTORS = 8
equ BIF_EDITBOX = 16
equ BIF_VALIDATE = 32
equ BIF_NEWDIALOGSTYLE = 64
equ BIF_BROWSEINCLUDEURLS = 128
equ BIF_USENEWUI = ( BIF_EDITBOX | BIF_NEWDIALOGSTYLE )
equ BIF_BROWSEFORCOMPUTER = 0x1000
equ BIF_BROWSEFORPRINTER = 0x2000
equ BIF_BROWSEINCLUDEFILES = 0x4000
equ BIF_SHAREABLE = 0x8000

equ BFFM_INITIALIZED = 1
equ BFFM_SELCHANGED = 2
equ BFFM_VALIDATEFAILEDA = 3
equ BFFM_VALIDATEFAILEDW = 4

equ BFFM_SETSTATUSTEXTA = (WM_USER + 100)
equ BFFM_SETSTATUSTEXTW = (WM_USER + 104)
equ BFFM_ENABLEOK = (WM_USER + 101)
equ BFFM_SETSELECTIONA = (WM_USER + 102)
equ BFFM_SETSELECTIONW = (WM_USER + 103)
equ BFFM_SETOKTEXT = (WM_USER + 105)
equ BFFM_SETEXPANDED = (WM_USER + 106)

end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?