Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/***************************************************************************\
* * File: MsgTable.h * * Description: * MsgTable.h defines the "Message Table" object that provide a * dynamically generated v-table for messages. * * * History: * 8/05/2000: JStall: Created * * Copyright (C) 2000 by Microsoft Corporation. All rights reserved. * \***************************************************************************/
#if !defined(MSG__MsgTable_h__INCLUDED)
#define MSG__MsgTable_h__INCLUDED
#pragma once
//
// NOTE: MsgSlot NEEDS to have data packed on 8-byte boundaries since it will
// be directly accessed on Win64.
//
struct MsgSlot { void * pfn; // Implementation function
int cbThisOffset; // "this" offset in arpThis
ATOM atomNameID; // Unique ID for message
};
class MsgClass;
class MsgTable { // Construction
public: inline MsgTable(); inline ~MsgTable(); static HRESULT Build(const DUser::MessageClassGuts * pmc, const MsgClass * pmcPeer, MsgTable ** ppmt); inline void Destroy();
// Operations
public: inline int GetCount() const; inline int GetDepth() const; inline const MsgClass * GetClass() const; inline const MsgSlot * GetMsgSlot(int nMsg) const; const MsgSlot * Find(ATOM atomNameID) const; int FindIndex(ATOM atomNameID) const;
// Implementation
protected: inline MsgSlot * GetSlots(); inline const MsgSlot * GetSlots() const;
// Data
protected: const MsgTable * m_pmtSuper; const MsgClass * m_pmcPeer; int m_cMsgs; };
#include "MsgTable.inl"
#endif // MSG__MsgTable_h__INCLUDED
|