diff options
Diffstat (limited to 'private/ole32/oleui/datapkt.h')
-rw-r--r-- | private/ole32/oleui/datapkt.h | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/private/ole32/oleui/datapkt.h b/private/ole32/oleui/datapkt.h new file mode 100644 index 000000000..a6feb52eb --- /dev/null +++ b/private/ole32/oleui/datapkt.h @@ -0,0 +1,141 @@ +//+--------------------------------------------------------------------- +// +// Microsoft Windows +// Copyright (C) Microsoft Corporation, 1993 - 1994. +// +// File: datapkt.h +// +// Contents: Defines the class CDataPacket to manages diverse data +// packets needing to be written to various databases +// +// Classes: +// +// Methods: +// +// History: 23-Apr-96 BruceMa Created. +// +//---------------------------------------------------------------------- + + +#ifndef _DATAPKT_H_ +#define _DATAPKT_H_ + +typedef enum tagPACKETTYPE {Empty, NamedValueSz, NamedValueDword, SingleACL, + RegKeyACL, Password, ServiceIdentity} PACKETTYPE; + +typedef struct +{ + HKEY hRoot; + TCHAR *szKeyPath; + TCHAR *szValueName; + TCHAR *szValue; +} SNamedValueSz, *PNamedValueSz; + +typedef struct +{ + HKEY hRoot; + TCHAR *szKeyPath; + TCHAR *szValueName; + DWORD dwValue; +} SNamedValueDword, *PNamedValueDword; + +typedef struct +{ + HKEY hRoot; + TCHAR *szKeyPath; + TCHAR *szValueName; + SECURITY_DESCRIPTOR *pSec; +} SSingleACL, *PSingleACL; + + +typedef struct +{ + HKEY hKey; + HKEY *phClsids; + unsigned cClsids; + TCHAR *szTitle; + SECURITY_DESCRIPTOR *pSec; + SECURITY_DESCRIPTOR *pSecOrig; +} SRegKeyACL, *PRegKeyACL; + + +typedef struct +{ + TCHAR *szPassword; + CLSID appid; +} SPassword, *PPassword; + + +typedef struct +{ + TCHAR *szServiceName; + TCHAR *szIdentity; +} SServiceIdentity, *PServiceIdentity; + + +class CDataPacket +{ + public: + CDataPacket(void); + + CDataPacket(HKEY hRoot, + TCHAR *szKeyPath, + TCHAR *szValueName, + TCHAR *szValue); + + CDataPacket(HKEY hRoot, + TCHAR *szKeyPath, + TCHAR *szValueName, + DWORD dwValue); + + CDataPacket(HKEY hRoot, + TCHAR *szKeyPath, + TCHAR *szValueName, + SECURITY_DESCRIPTOR *pSec, + BOOL fSelfRelative); + + CDataPacket(HKEY hKey, + HKEY *phClsids, + unsigned cClsids, + TCHAR *szTitle, + SECURITY_DESCRIPTOR *pSecOrig, + SECURITY_DESCRIPTOR *pSec, + BOOL fSelfRelative); + + CDataPacket(TCHAR *szPassword, + CLSID apid); + + CDataPacket(TCHAR *szServiceName, + TCHAR *szIdentity); + + CDataPacket(PACKETTYPE pktType, + HKEY hRoot, + TCHAR *szKeyPath, + TCHAR *szValueName); + + void ChgSzValue(TCHAR *szValue); + + void ChgDwordValue(DWORD dwValue); + + void ChgACL(SECURITY_DESCRIPTOR *pSec, BOOL fSelfRelative); + + void ChgPassword(TCHAR *szPassword); + + void ChgSrvIdentity(TCHAR *szIdentity); + + + PACKETTYPE tagType; + BOOL fDirty; + BOOL fDelete; + union + { + SNamedValueSz nvsz; + SNamedValueDword nvdw; + SSingleACL acl; + SRegKeyACL racl; + SPassword pw; + SServiceIdentity si; + } pkt; +}; + +#endif // _DATAPKT_H_ |