windows-nt/Source/XPSP1/NT/base/ntsetup/win95upg/inc/merge.h
2020-09-26 16:20:57 +08:00

109 lines
1.7 KiB
C

/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
merge.h
Abstract:
Declares the interface for the Win9x to NT registry merge code.
These routines are used only in GUI mode. See w95upgnt\merge
for implementation details.
Author:
Jim Schmidt (jimschm) 23-Jan-1997
Revision History:
jimschm 25-Mar-1998 Support for hkcr.c
--*/
//
// merge.h -- public interface for merge.lib
//
//
#pragma once
#define REGMERGE_95_SUPPRESS 0x00000001
#define REGMERGE_95_RENAME_SUPPRESS 0x00000002
#define REGMERGE_95_RENAME 0x00000004
#define REGMERGE_NT_MASK 0x0000ff00
#define REGMERGE_NT_SUPPRESS 0x00000100
#define REGMERGE_NT_IGNORE_DEFAULTS 0x00000200
#define REGMERGE_NT_PRIORITY_NT 0x00000400
BOOL
WINAPI
Merge_Entry (
IN HINSTANCE hinstDLL,
IN DWORD dwReason,
IN LPVOID lpv
);
BOOL
MergeRegistry (
IN LPCTSTR FileName,
IN LPCTSTR User
);
BOOL
SuppressWin95Object (
IN LPCTSTR ObjectStr
);
PBYTE
FilterRegValue (
IN PBYTE Data,
IN DWORD DataSize,
IN DWORD DataType,
IN PCTSTR KeyForDbgMsg, OPTIONAL
OUT PDWORD NewDataSize
);
//
// HKCR merge code
//
typedef enum {
ANY_CONTEXT,
ROOT_BASE,
CLSID_BASE,
CLSID_COPY,
CLSID_INSTANCE_COPY,
TYPELIB_BASE,
TYPELIB_VERSION_COPY,
INTERFACE_BASE,
TREE_COPY,
TREE_COPY_NO_OVERWRITE,
KEY_COPY,
COPY_DEFAULT_VALUE,
COPY_DEFAULT_ICON
} MERGE_CONTEXT;
BOOL
MergeRegistryNode (
IN PCTSTR RootKey,
IN MERGE_CONTEXT Context
);
#ifdef DEBUG
#define DEBUGENCODER DebugEncoder
#else
#define DEBUGENCODER(x) NULL
#endif
PCTSTR
DebugEncoder (
PVOID ObPtr
);