187 lines
3.3 KiB
C
187 lines
3.3 KiB
C
/*++
|
|
|
|
Copyright (c) 1998 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
msgmgr.h
|
|
|
|
Abstract:
|
|
|
|
Declares the interface to the message manager. The message manager
|
|
associates a message with a context and one or more objects (files,
|
|
registry keys, or whatever). The objects can also be handled. At
|
|
the end of Win9x-side processing, message manager enumerates all
|
|
the messages and adds unhandled messages to the incompatibility
|
|
report.
|
|
|
|
This code was written by MikeCo. It does not conform to our coding
|
|
standards, and is implemented inefficiently. Be very careful when
|
|
fixing bugs in message manager.
|
|
|
|
Author:
|
|
|
|
Mike Condra (mikeco) 20-May-1997
|
|
|
|
Revision History:
|
|
|
|
jimschm 15-Jan-1999 Added HandleReportObject, cleaned up some formatting
|
|
|
|
--*/
|
|
|
|
|
|
#pragma once
|
|
|
|
//
|
|
// Function marks an object as "handled"
|
|
//
|
|
VOID
|
|
HandleObject(
|
|
IN PCTSTR Object,
|
|
IN PCTSTR ObjectType
|
|
);
|
|
|
|
//
|
|
// Function puts object in a list so that it appears in the short list view
|
|
//
|
|
|
|
VOID
|
|
ElevateObject (
|
|
IN PCTSTR Object
|
|
);
|
|
|
|
//
|
|
// Function marks an object as "handled", but only for the incompatibility report
|
|
//
|
|
VOID
|
|
HandleReportObject (
|
|
IN PCTSTR Object
|
|
);
|
|
|
|
//
|
|
// Function marks an object as "blocking"
|
|
//
|
|
VOID
|
|
AddBlockingObject (
|
|
IN PCTSTR Object
|
|
);
|
|
|
|
|
|
|
|
//
|
|
// Function encodes a registry key and optional value name into a string
|
|
// that can identify a Handleable Object.
|
|
//
|
|
PCTSTR
|
|
EncodedObjectNameFromRegKey(
|
|
PCTSTR Key,
|
|
PCTSTR ValueName OPTIONAL
|
|
);
|
|
|
|
//
|
|
// Function records a pairing between a link-target-type Handleable Object and
|
|
// its description, taken from the name of a link to the target.
|
|
//
|
|
VOID
|
|
LnkTargToDescription_Add(
|
|
IN PCTSTR Target,
|
|
IN PCTSTR Desc
|
|
);
|
|
|
|
//
|
|
// PUBLIC ROUTINES: Intialization, deferred message resolution, cleanup.
|
|
//
|
|
|
|
//
|
|
// Function allocates tables and whatever else is needed to support
|
|
// deferred messaging, handled-object tracking, and contexts.
|
|
//
|
|
VOID
|
|
MsgMgr_Init (
|
|
VOID
|
|
);
|
|
|
|
//
|
|
// Function associates a message with an object
|
|
//
|
|
VOID
|
|
MsgMgr_ObjectMsg_Add(
|
|
IN PCTSTR Object,
|
|
IN PCTSTR Component,
|
|
IN PCTSTR Msg
|
|
);
|
|
|
|
//
|
|
// Function associates a message with a context. The context is created
|
|
// when first mentioned in a call to this function.
|
|
//
|
|
VOID
|
|
MsgMgr_ContextMsg_Add(
|
|
IN PCTSTR Context,
|
|
IN PCTSTR Component,
|
|
IN PCTSTR Msg
|
|
);
|
|
|
|
//
|
|
// Function makes a context message dependent on the handled state of an object.
|
|
//
|
|
VOID
|
|
MsgMgr_LinkObjectWithContext(
|
|
IN PCTSTR Context,
|
|
IN PCTSTR Object
|
|
);
|
|
|
|
//
|
|
// Function compares the set of handled objects with the set of deferred
|
|
// messages; issues context messages if any of their objects remain unhandled:
|
|
// issues object messages if the objects are unhandled.
|
|
//
|
|
VOID
|
|
MsgMgr_Resolve (
|
|
VOID
|
|
);
|
|
|
|
//
|
|
// Function cleans up the data structures used by deferred messaging.
|
|
//
|
|
VOID
|
|
MsgMgr_Cleanup (
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
IsReportObjectIncompatible (
|
|
IN PCTSTR Object
|
|
);
|
|
|
|
BOOL
|
|
IsReportObjectHandled (
|
|
IN PCTSTR Object
|
|
);
|
|
|
|
VOID
|
|
MsgMgr_InitStringMap (
|
|
VOID
|
|
);
|
|
|
|
|
|
typedef struct {
|
|
BOOL Disabled;
|
|
PCTSTR Object;
|
|
PCTSTR Context;
|
|
//
|
|
// internal
|
|
//
|
|
INT Index;
|
|
} MSGMGROBJENUM, *PMSGMGROBJENUM;
|
|
|
|
BOOL
|
|
MsgMgr_EnumFirstObject (
|
|
OUT PMSGMGROBJENUM EnumPtr
|
|
);
|
|
|
|
BOOL
|
|
MsgMgr_EnumNextObject (
|
|
IN OUT PMSGMGROBJENUM EnumPtr
|
|
);
|