рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

END_INTERFACE_MAP

END_INTERFACE_MAP - раздел Образование, ABSTRACT   The End_Interface_Map Macro Is Provided To F...

 

The END_INTERFACE_MAP macro is provided to flag the end of the Map list.

 

Each object that may be served from the dll will need its particular InterfaceMap. Each InterfaceItem will need to refer to it's iid and also hold a pointer to the table of member functions of the interface.

 

InterfaceItem STRUCT

m_refiid DWORD ; reference to the Interface ID (iid)

; the GUID of this interface

m_pVtbl DWORD ; pointer to implementation table ('virtual'

; function vtable , or just vtable) of this

; interface

InterfaceItem ENDS

OBJECT BASICS

 

As previously discussed elsewhere (see "Creating COM objects in ASM," Assembly Programming Journal, Issue 8: Mar-Aug 2000), an object should be thought of a run-time allocated area of memory. It needs a well defined structure so it's internal properties may be employed to give custom instance information and access to the methods of the object.

 

In the CoLib.Lib library, an object is defined as an array of structures, build up as so:

 

ProjectObject STRUCT

ObjectData1 { }

ProjectData { }

ObjectEntry0 { }

ObjectEntry1 { }

ObjectEntry2 { }

...

ObjectEntryN { }

ProjectObject ENDS

 

 

These internal structures are used as follows:

 

ObjectData Contains the internal state of a particular object, such as the reference count, a reference to class data and such.

 

ProjectData An arbitrary structure determined by the specific project, meant to be a catch-all for all object-specific data.

 

ObjectEntryX The ObjectEntry structure provides a uniform way to support multiple interfaces. The value of this_ at any time is in fact a pointer to a particular ObjectEntry. This structure is used to cast this_ internally to the base address of the object.

 

In CoLib version 1.1 and higher this structure need not be defined. Just be aware that this is how your object is created by the lib.

 

The ObjectDatais a standard structure holds the basic instance information for the object.

 

ObjectDataSTRUCT

m_RefCountDWORD ; The object reference count

m_pUnkOuterDWORD ; aggregating object's IUnknown

m_lcidDWORD ; current LCID of this object

m_ptiDWORD ; object ITypeInfo pointer

m_pAggListDWORD ; reference to aggregated object linked list

m_pClassItemDWORD ; ClassItem data pointer

m_pEntry0DWORD ; first ObjectEntry(to skip custom data)

– Конец работы –

Эта тема принадлежит разделу:

ABSTRACT

Copyright by Ernest Murphy ernie surfree com... For educational use only All commercial use only by written license...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: END_INTERFACE_MAP

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

END_CLASS_MAP
  The END_CLASS_MAP macro is provided to flag the end of the Map list.   Classes also may also be instanced without a call to CoCreateI

ObjectData
    The ProjectData structure is custom to each class and must be defined by the project for each class. There are no limits on the size or makeup of th

M_Flags
Various flags controlling the object. This member can include zero or a combination of the following values:     AGGREGATABLE Object

M_pBase
reference to base address of this object     TypeLibInfo

END_OF_INTERFACEMAP
A macro to define a NULL InterfaceItem element to signify the end of the InterfaceMap.  

M_DataItemN
This structure, and the data defined are arbitrary, for example only. Each particular class needs to define its own custom data structure in the project file.  

ObjectEntryN
An ObjectEntry structure. Each class needs N+1 ObjectEntry structures in sequence to support N interfaces.  

VarValue
Variable value of the VARIANT being defined.  

PObject
Object reference, the this_ parameter passed to an class method. reg Name of the register to return the cast. _offsetl

PObject
Object reference, the this_ parameter passed to an class method. reg Name of the register to return the cast. _offsetl

ComPtrAssign PROC
pp:DWORD,// reference of variable to receive a pointer lp:DWORD// reference to existing COM pointer Parameters

ComQIPtrAssign PROC
pp:DWORD,// reference of variable to receive a pointer lp:DWORD// reference to existing COM pointer riid

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги