windows-nt/Source/XPSP1/NT/shell/osshell/lmui/shareui/shares.h
2020-09-26 16:20:57 +08:00

62 lines
2.5 KiB
C

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: shares.h
//
// Contents: Definition of the shell IDLIST type for Shares
//
// History: 13-Dec-95 BruceFo Created
//
//----------------------------------------------------------------------------
#ifndef __SHARES_H__
#define __SHARES_H__
struct IDSHARE
{
USHORT cb;
BYTE bFlags;
BYTE bReserved; // for alignment
DWORD type; // shiX_type field
DWORD maxUses; // only valid for SHID_SHARE_2
USHORT oPath; // only valid for SHID_SHARE_2: cBuf[oPath] is start of path
USHORT oComment; // cBuf[oComment] is start of comment
TCHAR cBuf[MAX_PATH*3]; // cBuf[0] is the start of name
};
typedef IDSHARE* LPIDSHARE;
#define SHID_SHARE_1 0x50 // Net share info level 1
#define SHID_SHARE_2 0x51 // Net share info level 2
#ifdef WIZARDS
#define SHID_SHARE_ALL 0x5c // "all" shares wizard
#define SHID_SHARE_NW 0x5d // NetWare shares wizard
#define SHID_SHARE_MAC 0x5e // Mac shares wizard
#define SHID_SHARE_NEW 0x5f // New Share wizard
#endif // WIZARDS
#define Share_GetFlags(pidl) (pidl->bFlags)
#define Share_GetName(pidl) (pidl->cBuf)
#define Share_GetComment(pidl) (&(pidl->cBuf[pidl->oComment]))
#define Share_GetPath(pidl) (&(pidl->cBuf[pidl->oPath]))
#define Share_GetType(pidl) (pidl->type)
#define Share_GetMaxUses(pidl) (pidl->maxUses)
#ifdef WIZARDS
#define Share_IsAllWizard(pidl) (pidl->bFlags == SHID_SHARE_ALL)
#define Share_IsNetWareWizard(pidl) (pidl->bFlags == SHID_SHARE_NW)
#define Share_IsMacWizard(pidl) (pidl->bFlags == SHID_SHARE_MAC)
#define Share_IsNewShareWizard(pidl) (pidl->bFlags == SHID_SHARE_NEW)
#define Share_IsSpecial(pidl) (Share_IsNetWareWizard(pidl) || Share_IsMacWizard(pidl) || Share_IsNewShareWizard(pidl))
#endif // WIZARDS
#define Share_IsShare(pidl) (pidl->bFlags == SHID_SHARE_1 || pidl->bFlags == SHID_SHARE_2)
#define Share_GetLevel(pidl) (appAssert(Share_IsShare(pidl)), pidl->bFlags - SHID_SHARE_1 + 1)
#define Share_GetNameOffset(pidl) offsetof(IDSHARE, cBuf)
#define Share_GetCommentOffset(pidl) (offsetof(IDSHARE, cBuf) + pidl->oComment * sizeof(TCHAR))
#define Share_GetPathOffset(pidl) (offsetof(IDSHARE, cBuf) + pidl->oPath * sizeof(TCHAR))
#endif // __SHARES_H__