MSHLFLAGS-Enumeration (wtypesbase.h)
Gibt an, warum das Marshalling durchgeführt werden soll.
Syntax
typedef enum tagMSHLFLAGS {
MSHLFLAGS_NORMAL = 0,
MSHLFLAGS_TABLESTRONG = 1,
MSHLFLAGS_TABLEWEAK = 2,
MSHLFLAGS_NOPING = 4,
MSHLFLAGS_RESERVED1 = 8,
MSHLFLAGS_RESERVED2 = 16,
MSHLFLAGS_RESERVED3 = 32,
MSHLFLAGS_RESERVED4 = 64
} MSHLFLAGS;
Konstanten
MSHLFLAGS_NORMAL Wert: 0 Das Marshallen erfolgt, weil ein Schnittstellenzeiger von einem Prozess an einen anderen übergeben wird. Dies ist der Normalfall. Das vom Marshallvorgang erzeugte Datenpaket wird im Zielprozess entmarshaliert. Das gemarselte Datenpaket kann nur einmal oder gar nicht entmarsmet werden. Wenn der Empfänger das Datenpaket erfolgreich entmarshaliert, wird die CoReleaseMarshalData-Funktion im Rahmen des Entmarsshalings automatisch für das Datenpaket aufgerufen. Wenn der Empfänger das Datenpaket nicht entmarsen kann oder kann, muss der Absender CoReleaseMarshalData für das Datenpaket aufrufen. |
MSHLFLAGS_TABLESTRONG Wert: 1 Das Marshalling erfolgt, weil das Datenpaket in einer global zugänglichen Tabelle gespeichert werden soll, aus der es ein oder mehrere Male oder gar nicht getrennt werden kann. Das Vorhandensein des Datenpakets in der Tabelle gilt als starker Verweis auf die zu marshallende Schnittstelle, was bedeutet, dass es ausreicht, um das Objekt am Leben zu halten. Wenn das Datenpaket aus der Tabelle entfernt wird, muss der Tabellenimplementierer die CoReleaseMarshalData-Funktion für das Datenpaket aufrufen. MSHLFLAGS_TABLESTRONG wird von der RegisterDragDrop-Funktion verwendet, wenn ein Fenster als Ablageziel registriert wird. Dadurch bleibt das Fenster als Ablageziel registriert, unabhängig davon, wie oft der Endbenutzer über das Fenster zieht. Die RevokeDragDrop-Funktion ruft CoReleaseMarshalData auf. |
MSHLFLAGS_TABLEWEAK Wert: 2 Das Marshalling erfolgt, weil das Datenpaket in einer global zugänglichen Tabelle gespeichert werden soll, aus der es ein oder mehrere Male oder gar nicht getrennt werden kann. Das Vorhandensein des Datenpakets in der Tabelle fungiert jedoch als schwacher Verweis auf die zu marshallende Schnittstelle, was bedeutet, dass es nicht ausreicht, das Objekt am Leben zu halten. Wenn das Datenpaket aus der Tabelle entfernt wird, muss der Tabellenimplementierer die CoReleaseMarshalData-Funktion für das Datenpaket aufrufen. MSHLFLAGS_TABLEWEAK wird in der Regel beim Registrieren eines Objekts in der ausgeführten Objekttabelle (ROT) verwendet. Dadurch wird verhindert, dass der Eintrag des Objekts in die ROT das Objekt ohne andere Verbindungen am Leben hält. Weitere Informationen finden Sie unter IRunningObjectTable::Register . |
MSHLFLAGS_NOPING Wert: 4 Durch das Hinzufügen dieses Flags zu einem ursprünglichen Objekt marshalling (im Gegensatz zum Marshallen eines Proxys) wird das Pingprotokoll für dieses Objekt deaktiviert. |
MSHLFLAGS_RESERVED1 Wert: 8 |
MSHLFLAGS_RESERVED2 Wert: 16 |
MSHLFLAGS_RESERVED3 Wert: 32 |
MSHLFLAGS_RESERVED4 Wert: 64 |
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Kopfzeile | wtypesbase.h (einschließen von WTypes.h) |