PIDLMGR.H
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:
Windows编程
开发平台:
Visual C++
- /**************************************************************************
- 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