Changeset 3243 for trunk/src/shell32/pidl.h
- Timestamp:
- Mar 26, 2000, 6:34:57 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/shell32/pidl.h
r1543 r3243 1 /* $Id: pidl.h,v 1. 2 1999-11-02 18:50:15 phallerExp $ */1 /* $Id: pidl.h,v 1.3 2000-03-26 16:34:43 cbratschi Exp $ */ 2 2 3 3 /* … … 41 41 * PIDLDATA desribes the type of pidl. 42 42 * 43 * 44 * 45 * 46 * my computer 0x1F/20 mycomp (2)(usual)47 * network 0x1Fmycomp48 * bitbucket 0x1Fmycomp49 * drive 0x23/25 drive(usual)50 * drive 0x25/25 drive(lnk/persistant)51 * drive 0x29/25drive52 * shell extension 0x2Emycomp53 * drive 0x2F drive(lnk/persistant)54 * folder/file 0x30 folder/file (1)(lnk/persistant)55 * folder 0x31 folder(usual)56 * value 0x32 file(usual)57 * workgroup 0x41network (3)58 * computer 0x42network (4)59 * whole network 0x47network (5)60 * MSITStore 0x61 htmlhlp (7)61 * history/favorites 0xb1file62 * share 0xc3network (6)43 * object ! first byte / ! format ! living space 44 * ! size 45 * ---------------------------------------------------------------- 46 * my computer 0x1F/20 mycomp (2) (usual) 47 * network 0x1F mycomp 48 * bitbucket 0x1F mycomp 49 * drive 0x23/25 drive (usual) 50 * drive 0x25/25 drive (lnk/persistant) 51 * drive 0x29/25 drive 52 * shell extension 0x2E mycomp 53 * drive 0x2F drive (lnk/persistant) 54 * folder/file 0x30 folder/file (1) (lnk/persistant) 55 * folder 0x31 folder (usual) 56 * value 0x32 file (usual) 57 * workgroup 0x41 network (3) 58 * computer 0x42 network (4) 59 * whole network 0x47 network (5) 60 * MSITStore 0x61 htmlhlp (7) 61 * history/favorites 0xb1 file 62 * share 0xc3 network (6) 63 63 * 64 64 * guess: the persistant elements are non tracking … … 66 66 * (1) dummy byte is used, attributes are empty 67 67 * (2) IID_MyComputer = 20D04FE0L-3AEA-1069-A2D8-08002B30309D 68 * (3) two strings 69 * (4) one string 70 * (5) one string 71 * (6) one string 68 * (3) two strings "workgroup" "microsoft network" 69 * (4) one string "\\sirius" 70 * (5) one string "whole network" 71 * (6) one string "\\sirius\c" 72 72 * (7) contains string "mk:@MSITStore:C:\path\file.chm::/path/filename.htm" 73 * GUID871C5380-42A0-1069-A2EA-08002B30309D73 * GUID 871C5380-42A0-1069-A2EA-08002B30309D 74 74 */ 75 75 76 #define PT_DESKTOP 77 #define PT_MYCOMP 78 #define PT_DRIVE 79 #define PT_DRIVE2 80 #define PT_DRIVE3 81 #define PT_SPECIAL 82 #define PT_DRIVE1 83 #define PT_FOLDER1 84 #define PT_FOLDER 85 #define PT_VALUE 86 #define PT_WORKGRP 87 #define PT_COMP 88 #define PT_NETWORK 89 #define PT_IESPECIAL 90 #define PT_SHARE 76 #define PT_DESKTOP 0x00 /* internal */ 77 #define PT_MYCOMP 0x1F 78 #define PT_DRIVE 0x23 79 #define PT_DRIVE2 0x25 80 #define PT_DRIVE3 0x29 81 #define PT_SPECIAL 0x2E 82 #define PT_DRIVE1 0x2F 83 #define PT_FOLDER1 0x30 84 #define PT_FOLDER 0x31 85 #define PT_VALUE 0x32 86 #define PT_WORKGRP 0x41 87 #define PT_COMP 0x42 88 #define PT_NETWORK 0x47 89 #define PT_IESPECIAL 0xb1 90 #define PT_SHARE 0xc3 91 91 92 92 #include "pshpack1.h" … … 94 94 95 95 typedef struct tagPIDLDATA 96 { PIDLTYPE type;/*00*/97 98 99 { BYTE dummy;/*01*/100 GUID guid;/*02*/101 BYTE dummy1;/*18*/102 103 104 { CHAR szDriveName[20];/*01*/105 DWORD dwUnknown;/*21*/106 107 108 109 { BYTE dummy;/*01 is 0x00 for files or dirs */110 DWORD dwFileSize;/*02*/111 WORD uFileDate;/*06*/112 WORD uFileTime;/*08*/113 WORD uFileAttribs;/*10*/114 CHAR szNames[1];/*12*/115 116 117 118 119 { WORD dummy;/*01*/120 CHAR szNames[1];/*03*/121 122 123 { WORD dummy;/*01*/124 DWORD dummy1;/*02*/125 CHAR szName[1];/*06*/ /* teminated by 0x00 0x00 */126 127 96 { PIDLTYPE type; /*00*/ 97 union 98 { struct 99 { BYTE dummy; /*01*/ 100 GUID guid; /*02*/ 101 BYTE dummy1; /*18*/ 102 } mycomp; 103 struct 104 { CHAR szDriveName[20]; /*01*/ 105 DWORD dwUnknown; /*21*/ 106 /* the drive seems to be 25 bytes every time */ 107 } drive; 108 struct 109 { BYTE dummy; /*01 is 0x00 for files or dirs */ 110 DWORD dwFileSize; /*02*/ 111 WORD uFileDate; /*06*/ 112 WORD uFileTime; /*08*/ 113 WORD uFileAttribs; /*10*/ 114 CHAR szNames[1]; /*12*/ 115 /* Here are comming two strings. The first is the long name. 116 The second the dos name when needed or just 0x00 */ 117 } file, folder, generic; 118 struct 119 { WORD dummy; /*01*/ 120 CHAR szNames[1]; /*03*/ 121 } network; 122 struct 123 { WORD dummy; /*01*/ 124 DWORD dummy1; /*02*/ 125 CHAR szName[1]; /*06*/ /* teminated by 0x00 0x00 */ 126 } htmlhelp; 127 }u; 128 128 } PIDLDATA, *LPPIDLDATA; 129 129 #include "poppack.h" … … 132 132 * getting special values from simple pidls 133 133 */ 134 DWORD WINAPI _ILSimpleGetText (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize); 135 BOOL WINAPI _ILGetFileDate (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize); 136 DWORD WINAPI _ILGetFileSize (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize); 137 BOOL WINAPI _ILGetExtension (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize); 138 void WINAPI _ILGetFileType (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize); 139 BOOL WINAPI _ILGetAttributeStr (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize); 134 DWORD WINAPI _ILSimpleGetText (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize); 135 BOOL WINAPI _ILGetFileDate (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize); 136 DWORD WINAPI _ILGetFileSize (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize); 137 BOOL WINAPI _ILGetExtension (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize); 138 void WINAPI _ILGetFileType (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize); 139 DWORD WINAPI _ILGetFileAttributes (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize); 140 DWORD WINAPI _ILGetFileSizeKB (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize); 140 141 141 BOOL WINAPI _ILGetFileDateTime(LPCITEMIDLIST pidl, FILETIME *ft);142 DWORD WINAPI _ILGetDrive(LPCITEMIDLIST, LPSTR, UINT16);142 BOOL WINAPI _ILGetFileDateTime (LPCITEMIDLIST pidl, FILETIME *ft); 143 DWORD WINAPI _ILGetDrive (LPCITEMIDLIST, LPSTR, UINT16); 143 144 144 145 /* 145 146 * testing simple pidls 146 147 */ 147 BOOL WINAPI _ILIsDesktop(LPCITEMIDLIST pidl);148 BOOL WINAPI _ILIsMyComputer(LPCITEMIDLIST pidl);149 BOOL WINAPI _ILIsDrive(LPCITEMIDLIST pidl);150 BOOL WINAPI _ILIsFolder(LPCITEMIDLIST pidl);151 BOOL WINAPI _ILIsValue(LPCITEMIDLIST pidl);152 BOOL WINAPI _ILIsSpecialFolder(LPCITEMIDLIST pidl);153 BOOL WINAPI _ILIsPidlSimple(LPCITEMIDLIST pidl);148 BOOL WINAPI _ILIsDesktop (LPCITEMIDLIST pidl); 149 BOOL WINAPI _ILIsMyComputer (LPCITEMIDLIST pidl); 150 BOOL WINAPI _ILIsDrive (LPCITEMIDLIST pidl); 151 BOOL WINAPI _ILIsFolder (LPCITEMIDLIST pidl); 152 BOOL WINAPI _ILIsValue (LPCITEMIDLIST pidl); 153 BOOL WINAPI _ILIsSpecialFolder (LPCITEMIDLIST pidl); 154 BOOL WINAPI _ILIsPidlSimple (LPCITEMIDLIST pidl); 154 155 155 156 /* 156 157 * simple pidls from strings 157 158 */ 158 LPITEMIDLIST WINAPI _ILCreate(PIDLTYPE,LPCVOID,UINT16);159 LPITEMIDLIST WINAPI _ILCreate (PIDLTYPE,LPCVOID,UINT16); 159 160 160 LPITEMIDLIST WINAPI _ILCreateDesktop(void);161 LPITEMIDLIST WINAPI _ILCreateMyComputer(void);162 LPITEMIDLIST WINAPI _ILCreateIExplore(void);163 LPITEMIDLIST WINAPI _ILCreateControl(void);164 LPITEMIDLIST WINAPI _ILCreatePrinter(void);165 LPITEMIDLIST WINAPI _ILCreateNetwork(void);166 LPITEMIDLIST WINAPI _ILCreateBitBucket(void);167 LPITEMIDLIST WINAPI _ILCreateDrive(LPCSTR);168 LPITEMIDLIST WINAPI _ILCreateFolder(WIN32_FIND_DATAA * stffile);169 LPITEMIDLIST WINAPI _ILCreateValue(WIN32_FIND_DATAA * stffile);170 LPITEMIDLIST WINAPI _ILCreateSpecial(LPCSTR szGUID);161 LPITEMIDLIST WINAPI _ILCreateDesktop (void); 162 LPITEMIDLIST WINAPI _ILCreateMyComputer (void); 163 LPITEMIDLIST WINAPI _ILCreateIExplore (void); 164 LPITEMIDLIST WINAPI _ILCreateControl (void); 165 LPITEMIDLIST WINAPI _ILCreatePrinter (void); 166 LPITEMIDLIST WINAPI _ILCreateNetwork (void); 167 LPITEMIDLIST WINAPI _ILCreateBitBucket (void); 168 LPITEMIDLIST WINAPI _ILCreateDrive (LPCSTR); 169 LPITEMIDLIST WINAPI _ILCreateFolder (WIN32_FIND_DATAA * stffile); 170 LPITEMIDLIST WINAPI _ILCreateValue (WIN32_FIND_DATAA * stffile); 171 LPITEMIDLIST WINAPI _ILCreateSpecial (LPCSTR szGUID); 171 172 172 173 /* 173 174 * helper functions (getting struct-pointer) 174 175 */ 175 LPPIDLDATA WINAPI _ILGetDataPointer(LPCITEMIDLIST);176 LPSTR WINAPI _ILGetTextPointer(PIDLTYPE type, LPPIDLDATA pidldata);177 LPSTR WINAPI _ILGetSTextPointer(PIDLTYPE type, LPPIDLDATA pidldata);178 REFIID WINAPI _ILGetGUIDPointer(LPCITEMIDLIST pidl);176 LPPIDLDATA WINAPI _ILGetDataPointer (LPCITEMIDLIST); 177 LPSTR WINAPI _ILGetTextPointer (PIDLTYPE type, LPPIDLDATA pidldata); 178 LPSTR WINAPI _ILGetSTextPointer (PIDLTYPE type, LPPIDLDATA pidldata); 179 REFIID WINAPI _ILGetGUIDPointer (LPCITEMIDLIST pidl); 179 180 180 /* 181 * debug helper 181 /* 182 * debug helper 182 183 */ 183 184 void pdump (LPCITEMIDLIST pidl);
Note:
See TracChangeset
for help on using the changeset viewer.