94 lines
2.4 KiB
C
94 lines
2.4 KiB
C
|
/*
|
||
|
* Registry Association Management
|
||
|
*
|
||
|
* HTREGMNG.H
|
||
|
*
|
||
|
* Copyright (c) 1995 Microsoft Inc.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#ifndef HTREGMNG_H
|
||
|
#define HTREGMNG_H
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* Registry Management Structures
|
||
|
*
|
||
|
* We need a way to specify a set of registry entries to
|
||
|
* represent an association. We can then test and
|
||
|
* set the registry appropriately to restore associations
|
||
|
* as needed
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
typedef enum
|
||
|
{
|
||
|
RC_ADD,
|
||
|
RC_RUNDLL,
|
||
|
RC_DEL, // Remove key
|
||
|
RC_CALLBACK
|
||
|
} REGCMD;
|
||
|
|
||
|
|
||
|
// Flags for RegEntry
|
||
|
|
||
|
#define REF_NORMAL 0x00000000 // Required and forcefully set
|
||
|
#define REF_NOTNEEDED 0x00000001 // Ignored during checks
|
||
|
#define REF_IFEMPTY 0x00000002 // Set only if value/key is empty
|
||
|
#define REF_DONTINTRUDE 0x00000004 // Don't intrude at setup time
|
||
|
#define REF_NUKE 0x00000008 // Remove a key, regardless of the subkeys/values
|
||
|
#define REF_PRUNE 0x00000010 // Walk up this path and remove empty keys
|
||
|
#define REF_EDITFLAGS 0x00000020 // Remove edit flags only if the rest of the tree is empty
|
||
|
|
||
|
|
||
|
// NOTE: these structures are deliberately CHAR, not TCHAR, so we don't
|
||
|
// have to mess with the TEXT macro in all the tables.
|
||
|
|
||
|
typedef struct _RegEntry {
|
||
|
REGCMD regcmd; // Special Handling
|
||
|
DWORD dwFlags; // REF_*
|
||
|
HKEY hkeyRoot; // Root key
|
||
|
LPCSTR pszKey; // Key Name
|
||
|
LPCSTR pszValName; // Value Name
|
||
|
DWORD dwType; // Value Type
|
||
|
union
|
||
|
{
|
||
|
LPARAM lParam; // lParam
|
||
|
DWORD dwSize; // Value Size (in bytes)
|
||
|
}DUMMYUNIONNAME;
|
||
|
VOID const * pvValue; // Value
|
||
|
} RegEntry;
|
||
|
|
||
|
typedef RegEntry RegList[];
|
||
|
|
||
|
typedef struct _RegSet {
|
||
|
DWORD cre; // Count of entries
|
||
|
const RegEntry * pre;
|
||
|
} RegSet;
|
||
|
|
||
|
|
||
|
#define IEA_NORMAL 0x00000001 // Only install IE assoc. if IE is currently owner.
|
||
|
#define IEA_FORCEIE 0x00000002 // Force IE to take over associations
|
||
|
|
||
|
HRESULT InstallIEAssociations(DWORD dwFlags); // IEA_* flags
|
||
|
|
||
|
HRESULT UninstallPlatformRegItems(BOOL bIntegrated);
|
||
|
void UninstallCurrentPlatformRegItems();
|
||
|
BOOL IsCheckAssociationsOn();
|
||
|
void SetCheckAssociations( BOOL );
|
||
|
BOOL GetIEPath(LPSTR szPath, DWORD cch);
|
||
|
BOOL IsIEDefaultBrowser(void);
|
||
|
BOOL IsIEDefaultBrowserQuick(void);
|
||
|
HRESULT ResetWebSettings(HWND hwnd, BOOL *pfChangedHomePage);
|
||
|
|
||
|
extern const TCHAR c_szCLSID[];
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
};
|
||
|
#endif
|
||
|
|
||
|
#endif /* HTREGMNG_H */
|