Windows2000/private/shell/shell32/pidl.h
2020-09-30 17:12:32 +02:00

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