BIND_OPTS2 Struktur (objidl.h)

Enthält die Parameter, die während eines Moniker-Bindungsvorgangs verwendet werden.

Syntax

typedef struct tagBIND_OPTS2 {
  DWORD        cbStruct;
  DWORD        grfFlags;
  DWORD        grfMode;
  DWORD        dwTickCountDeadline;
  DWORD        dwTrackFlags;
  DWORD        dwClassContext;
  LCID         locale;
  COSERVERINFO *pServerInfo;
} BIND_OPTS2, *LPBIND_OPTS2;

Member

cbStruct

Die Größe dieser Struktur in Bytes.

grfFlags

Flags, die Aspekte von Monikerbindungsvorgängen steuern. Dieser Wert ist eine beliebige Kombination der Bitflags in der BIND_FLAGS-Enumeration . Die CreateBindCtx-Funktion initialisiert diesen Member auf null.

grfMode

Flags, die beim Öffnen der Datei verwendet werden sollen, die das vom Moniker angegebene Objekt enthält. Mögliche Werte sind die STGM-Konstanten. Der Bindungsvorgang verwendet diese Flags im Aufruf von IPersistFile::Load beim Laden der Datei. Wenn das Objekt bereits ausgeführt wird, werden diese Flags vom Bindungsvorgang ignoriert. Die CreateBindCtx-Funktion initialisiert dieses Feld, um STGM_READWRITE.

dwTickCountDeadline

Die Uhrzeit, bis zu der der Aufrufer den Bindungsvorgang abschließen möchte, in Millisekunden. Mit diesem Member kann der Aufrufer die Ausführungszeit eines Vorgangs begrenzen, wenn die Geschwindigkeit von primärer Bedeutung ist. Der Wert 0 gibt an, dass es keine Frist gibt. Aufrufer verwenden diese Funktion am häufigsten beim Aufrufen der IMoniker::GetTimeOfLastChange-Methode , kann jedoch auch auf andere Vorgänge angewendet werden. Die CreateBindCtx-Funktion initialisiert dieses Feld auf null.

Typische Fristen lassen einige hundert Millisekunden der Ausführung zu. Diese Frist ist eine Empfehlung, keine Anforderung; Vorgänge, die ihre Frist um einen großen Betrag überschreiten, können jedoch zu Verzögerungen für den Endbenutzer führen. Jede Monikerimplementierung sollte versuchen, den Vorgang bis zum Stichtag abzuschließen, oder der Fehler MK_E_EXCEEDEDDEADLINE fehlschlägt.

Wenn ein Bindungsvorgang seine Frist überschreitet, weil ein oder mehrere objekte, die er benötigt, nicht ausgeführt werden, sollte die moniker-Implementierung die im Bindungskontext verantwortlichen Objekte mithilfe von IBindCtx::RegisterObjectParam registrieren. Die Objekte sollten unter den Parameternamen "ExceededDeadline", "ExceededDeadline1", "ExceededDeadline2" usw. registriert werden. Wenn der Aufrufer das Objekt später in der ausgeführten Objekttabelle findet, kann der Aufrufer den Bindungsvorgang wiederholen.

Die GetTickCount-Funktion gibt die Anzahl von Millisekunden seit dem Systemstart an und wird nach 2^31 Millisekunden wieder auf 0 umgebrochen. Daher sollten Aufrufer darauf achten, dass sie nicht versehentlich einen Nullwert übergeben (was keinen Stichtag angibt), und Monikerimplementierungen sollten sich der Probleme mit der Uhrumbruch bewusst sein.

dwTrackFlags

Ein Moniker kann diesen Wert während der Linknachverfolgung verwenden. Wenn die ursprünglichen persistenten Daten, auf die der Moniker verweist, verschoben wurden, kann der Moniker versuchen, den Link wiederherzustellen, indem er nach den ursprünglichen Daten sucht, indem er nach einem geeigneten Mechanismus sucht. Dieses Element bietet zusätzliche Informationen dazu, wie der Link aufgelöst werden soll. Weitere Informationen finden Sie in der Dokumentation des fFlags-Parameters in IShellLink::Resolve.

Die Dateimonikerimplementierung von COM verwendet den Shelllinkmechanismus, um Links wiederherzustellen, und übergibt diese Flags an IShellLink::Resolve.

dwClassContext

Der Klassenkontext aus der CLSCTX-Enumeration , der zum Instanziieren des Objekts verwendet werden soll. Monikers übergeben diesen Wert in der Regel an den dwClsContext-Parameter von CoCreateInstance.

locale

Der LCID-Wert , der die Präferenz des Clients für das Gebietsschema angibt, das von dem Objekt verwendet werden soll, an das er gebunden ist. Ein Moniker übergibt diesen Wert an IClassActivator::GetClassObject.

pServerInfo

Ein Zeiger auf eine COSERVERINFO-Struktur . Mit diesem Member können Clients, die IMoniker::BindToObject aufrufen, Serverinformationen angeben. Clients können eine BIND_OPTS2-Struktur an die IBindCtx::SetBindOptions-Methode übergeben. Wenn in der COSERVERINFO-Struktur ein Servername angegeben ist, wird die Monikerbindung an den angegebenen Computer weitergeleitet. SetBindOptions kopiert nur die Strukturmember von BIND_OPTS2, nicht die COSERVERINFO-Struktur und die darin enthaltenen Zeiger. Aufrufer dürfen keinen dieser Zeiger freigeben, bis der Bindungskontext freigegeben wird. Der neue Klassenmoniker von COM berücksichtigt derzeit nicht das pServerInfo-Flag .

Hinweise

Eine BIND_OPTS2-Struktur wird in einem Bindungskontext gespeichert. Der gleiche Bindungskontext wird von jeder Komponente eines zusammengesetzten Monikers während der Bindung verwendet, sodass dieselben Parameter an alle Komponenten eines zusammengesetzten Monikers übergeben werden können. Weitere Informationen zu Bindungskontexten finden Sie unter IBindCtx .

Moniker-Clients (verwenden einen Moniker zum Abrufen eines Schnittstellenzeigers auf ein Objekt) müssen in der Regel keine Werte für die Member dieser Struktur angeben. Die CreateBindCtx-Funktion erstellt einen Bindungskontext, wobei die Bindungsoptionen auf Standardwerte festgelegt sind, die für die meisten Situationen geeignet sind. Die BindMoniker-Funktion tut das gleiche, wenn sie einen Bindungskontext für die Bindung eines Monikers erstellt. Wenn Sie die Werte dieser Bindungsoptionen ändern möchten, können Sie dazu eine BIND_OPTS2 Struktur an die IBindCtx::SetBindOptions-Methode übergeben. Moniker-Implementierer können eine BIND_OPTS2-Struktur an die IBindCtx::GetBindOptions-Methode übergeben, um die Werte dieser Bindungsoptionen abzurufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10 Build 20348
Unterstützte Mindestversion (Server) Windows 10 Build 20348
Kopfzeile objidl.h

Weitere Informationen

BIND_OPTS3

CreateBindCtx

Ibindctx

Imoniker