89 lines
2.2 KiB
C
89 lines
2.2 KiB
C
/***************************************************************************
|
|
* common stuff for pidls, and for shell type pidls *
|
|
* broken out so that it can be accessed from other places such as the *
|
|
* debugger extension code *
|
|
**************************************************************************/
|
|
|
|
#ifndef _PIDL_H_
|
|
#define _PIDL_H_
|
|
|
|
// declaration of Basic regitem pidl structure.
|
|
#pragma pack(1)
|
|
typedef struct _IDREGITEM
|
|
{
|
|
WORD cb;
|
|
BYTE bFlags;
|
|
BYTE bOrder;
|
|
CLSID clsid;
|
|
} IDREGITEM;
|
|
typedef UNALIGNED IDREGITEM *LPIDREGITEM;
|
|
typedef const UNALIGNED IDREGITEM *LPCIDREGITEM;
|
|
#pragma pack()
|
|
|
|
// FILE SYSTEM PIDLS from fstreex.h
|
|
typedef struct _IDFOLDER_FSA
|
|
{
|
|
DWORD dwSize;
|
|
WORD dateModified;
|
|
WORD timeModified;
|
|
WORD wAttrs;
|
|
CHAR cFileName[MAX_PATH];
|
|
CHAR cAltFileName[8+1+3+1]; // short name (may be empty)
|
|
} IDFOLDER_FSA;
|
|
|
|
// only used if the file name can't be round triped to ansi and back
|
|
typedef struct _IDFOLDER_FSW
|
|
{
|
|
DWORD dwSize;
|
|
WORD dateModified;
|
|
WORD timeModified;
|
|
WORD wAttrs;
|
|
WCHAR cFileName[MAX_PATH];
|
|
CHAR cAltFileName[8+1+3+1]; // ANSI version of cFileName (some chars not converted)
|
|
} IDFOLDER_FSW;
|
|
|
|
typedef struct _IDFOLDERA
|
|
{
|
|
WORD cb;
|
|
BYTE bFlags;
|
|
IDFOLDER_FSA fs;
|
|
} IDFOLDERA;
|
|
typedef UNALIGNED IDFOLDERA *LPIDFOLDERA;
|
|
typedef const UNALIGNED IDFOLDERA *LPCIDFOLDERA;
|
|
|
|
typedef struct _IDFOLDERW
|
|
{
|
|
WORD cb;
|
|
BYTE bFlags;
|
|
IDFOLDER_FSW fs;
|
|
} IDFOLDERW;
|
|
typedef UNALIGNED IDFOLDERW *LPIDFOLDERW;
|
|
typedef const UNALIGNED IDFOLDERW *LPCIDFOLDERW;
|
|
|
|
#ifdef UNICODE
|
|
#define IDFOLDER IDFOLDERW
|
|
#define LPIDFOLDER LPIDFOLDERW
|
|
#define LPCIDFOLDER LPCIDFOLDERW
|
|
#else
|
|
#define IDFOLDER IDFOLDERA
|
|
#define LPIDFOLDER LPIDFOLDERA
|
|
#define LPCIDFOLDER LPCIDFOLDERA
|
|
#endif
|
|
|
|
#pragma pack(1)
|
|
typedef struct _IDDRIVE
|
|
{
|
|
WORD cb;
|
|
BYTE bFlags;
|
|
CHAR cName[4];
|
|
ULONGLONG qwSize; // this is a "guess" at the disk size and free space
|
|
ULONGLONG qwFree;
|
|
WORD wChecksum;
|
|
} IDDRIVE;
|
|
typedef const UNALIGNED IDDRIVE *LPCIDDRIVE;
|
|
typedef UNALIGNED IDDRIVE *LPIDDRIVE;
|
|
#pragma pack()
|
|
|
|
|
|
#endif
|