home *** CD-ROM | disk | FTP | other *** search
- /**************************************************************************
- THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
- ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
- PARTICULAR PURPOSE.
-
- Copyright 1997 Microsoft Corporation. All Rights Reserved.
- **************************************************************************/
-
- /**************************************************************************
-
- File: PidlMgr.h
-
- Description: CPidlMgr definitions.
-
- **************************************************************************/
-
- #ifndef PIDLMGR_H
- #define PIDLMGR_H
-
- #include <windows.h>
- #include <shlobj.h>
-
- /**************************************************************************
- data types
- **************************************************************************/
-
- typedef enum tagPIDLTYPE
- {
- PT_ROOTKEY = 0x00000000,
- PT_SUBKEY = 0x00000001,
- PT_VALUE = 0x00000002,
- PT_TEXT = PT_SUBKEY | PT_VALUE
- }PIDLTYPE;
-
- typedef struct tagPIDLDATA
- {
- PIDLTYPE type;
- union{
- HKEY hRootKey;
- TCHAR szText[1];
- };
- }PIDLDATA, FAR *LPPIDLDATA;
-
- /**************************************************************************
- global variables
- **************************************************************************/
-
- extern HINSTANCE g_hInst;
- extern UINT g_DllRefCount;
-
- /**************************************************************************
-
- CPidlMgr class definition
-
- **************************************************************************/
-
- class CPidlMgr
- {
- public:
- CPidlMgr();
- ~CPidlMgr();
- LPITEMIDLIST CreateRootKey(HKEY);
- LPITEMIDLIST CreateSubKey(LPCTSTR);
- LPITEMIDLIST CreateValue(LPCTSTR);
- void Delete(LPITEMIDLIST);
- LPITEMIDLIST GetNextItem(LPCITEMIDLIST);
- LPITEMIDLIST Copy(LPCITEMIDLIST);
- UINT GetSize(LPCITEMIDLIST);
- BOOL GetRootKey(LPCITEMIDLIST, HKEY*);
- LPITEMIDLIST GetLastItem(LPCITEMIDLIST);
- DWORD GetItemText(LPCITEMIDLIST, LPTSTR, USHORT);
- BOOL IsRootKey(LPCITEMIDLIST);
- BOOL IsSubKey(LPCITEMIDLIST);
- BOOL IsValue(LPCITEMIDLIST);
- BOOL HasSubKeys(HKEY, LPCTSTR, LPCITEMIDLIST);
- DWORD GetSubKeyText(LPCITEMIDLIST, LPTSTR, DWORD);
- DWORD GetValueText(LPCITEMIDLIST, LPTSTR, DWORD);
-
- BOOL GetValueType(LPCITEMIDLIST, LPDWORD);
- BOOL GetValueType(LPCITEMIDLIST, LPCITEMIDLIST, LPDWORD);
-
- DWORD GetDataText(LPCITEMIDLIST, LPTSTR, DWORD);
- DWORD GetDataText(LPCITEMIDLIST, LPCITEMIDLIST, LPTSTR, DWORD);
-
- DWORD GetPidlPath(LPCITEMIDLIST, LPTSTR, DWORD);
- LPITEMIDLIST Concatenate(LPCITEMIDLIST, LPCITEMIDLIST);
-
- private:
- LPMALLOC m_pMalloc;
-
- LPITEMIDLIST Create(PIDLTYPE, LPVOID, USHORT);
- DWORD GetData(PIDLTYPE, LPCITEMIDLIST, LPVOID, USHORT);
- LPPIDLDATA GetDataPointer(LPCITEMIDLIST);
- BOOL SeparateKeyAndValue(LPCITEMIDLIST, LPITEMIDLIST*, LPITEMIDLIST*);
- };
-
- typedef CPidlMgr FAR *LPPIDLMGR;
-
- #endif //PIDLMGR_H
-