2 * internal pidl functions
3 * 1998 <juergen.schmied@metronet.de>
5 * DO NOT use this definitions outside the shell32.dll !
7 * The contents of a pidl should never used from a application
10 * This stuff is used from SHGetFileAttributes, ShellFolder
11 * EnumIDList and ShellView.
20 * the pidl does cache fileattributes to speed up SHGetAttributes when
21 * displaying a big number of files.
23 * a pidl of NULL means the desktop
25 * The structure of the pidl seens to be a union. The first byte of the
26 * PIDLDATA desribes the type of pidl.
28 * first byte - my Computer 0x1F
29 * control/printer 0x2E
32 * drive: the second byte is the start of a string
35 * file: see the PIDLDATA structure
38 #define PT_DESKTOP 0x00 /*fixme*/
39 #define PT_MYCOMP 0x1F
40 #define PT_SPECIAL 0x2E
42 #define PT_FOLDER 0x31
43 #define PT_VALUE 0x33 /*fixme*/
46 typedef BYTE PIDLTYPE
;
48 typedef struct tagPIDLDATA
52 { CHAR szDriveName
[4];
53 /* end of MS compatible*/
62 /* end of MS compatible*/
64 CHAR szAlternateName
[14]; /* the 8.3 Name*/
65 CHAR szText
[1]; /* last entry, variable size */
66 } file
, folder
, generic
;
68 } PIDLDATA
, *LPPIDLDATA
;
71 LPITEMIDLIST WINAPI
_ILCreateDesktop(void);
72 LPITEMIDLIST WINAPI
_ILCreateMyComputer(void);
73 LPITEMIDLIST WINAPI
_ILCreateDrive(LPCSTR
);
74 LPITEMIDLIST WINAPI
_ILCreateFolder(LPCSTR
);
75 LPITEMIDLIST WINAPI
_ILCreateValue(LPCSTR
);
76 LPITEMIDLIST WINAPI
_ILCreate(PIDLTYPE
,LPVOID
,UINT16
);
78 BOOL32 WINAPI
_ILGetDrive(LPCITEMIDLIST
,LPSTR
,UINT16
);
79 DWORD WINAPI
_ILGetItemText(LPCITEMIDLIST
,LPSTR
,UINT16
);
80 DWORD WINAPI
_ILGetFolderText(LPCITEMIDLIST
,LPSTR
,DWORD
);
81 DWORD WINAPI
_ILGetValueText(LPCITEMIDLIST
,LPSTR
,DWORD
);
82 DWORD WINAPI
_ILGetDataText(LPCITEMIDLIST
,LPCITEMIDLIST
,LPSTR
,DWORD
);
83 DWORD WINAPI
_ILGetPidlPath(LPCITEMIDLIST
,LPSTR
,DWORD
);
84 DWORD WINAPI
_ILGetData(PIDLTYPE
,LPCITEMIDLIST
,LPVOID
,UINT32
);
86 BOOL32 WINAPI
_ILIsDesktop(LPCITEMIDLIST
);
87 BOOL32 WINAPI
_ILIsMyComputer(LPCITEMIDLIST
);
88 BOOL32 WINAPI
_ILIsDrive(LPCITEMIDLIST
);
89 BOOL32 WINAPI
_ILIsFolder(LPCITEMIDLIST
);
90 BOOL32 WINAPI
_ILIsValue(LPCITEMIDLIST
);
92 BOOL32 WINAPI
_ILHasFolders(LPSTR
,LPCITEMIDLIST
);
94 LPPIDLDATA WINAPI
_ILGetDataPointer(LPCITEMIDLIST
);
95 LPSTR WINAPI
_ILGetTextPointer(PIDLTYPE type
, LPPIDLDATA pidldata
);
96 BOOL32 WINAPI
_ILGetFileDate (LPCITEMIDLIST pidl
, LPSTR pOut
, UINT32 uOutSize
);
97 BOOL32 WINAPI
_ILGetFileSize (LPCITEMIDLIST pidl
, LPSTR pOut
, UINT32 uOutSize
);
98 BOOL32 WINAPI
_ILGetExtension (LPCITEMIDLIST pidl
, LPSTR pOut
, UINT32 uOutSize
);
100 void pdump (LPCITEMIDLIST pidl
);