BIND_OPTS3-Struktur (objidl.h)

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

Syntax

typedef struct tagBIND_OPTS3 {
  DWORD        cbStruct;
  DWORD        grfFlags;
  DWORD        grfMode;
  DWORD        dwTickCountDeadline;
  DWORD        dwTrackFlags;
  DWORD        dwClassContext;
  LCID         locale;
  COSERVERINFO *pServerInfo;
  HWND         hwnd;
} BIND_OPTS3, *LPBIND_OPTS3;

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 beim 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 in Millisekunden, bis zu der der Aufrufer den Bindungsvorgang abschließen möchte. Mit diesem Member kann der Aufrufer die Ausführungszeit eines Vorgangs einschränken, wenn die Geschwindigkeit von primärer Bedeutung ist. Der Wert 0 (null) gibt an, dass kein Stichtag vorhanden ist. Aufrufer verwenden diese Funktion am häufigsten, wenn sie die IMoniker::GetTimeOfLastChange-Methode aufrufen, obwohl sie auch auf andere Vorgänge angewendet werden kann. Die CreateBindCtx-Funktion initialisiert dieses Feld auf null.

Typische Fristen lassen einige hundert Millisekunden 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, ihren Vorgang bis zum Stichtag abzuschließen, oder der Fehler MK_E_EXCEEDEDDEADLINE.

Wenn ein Bindungsvorgang seinen Stichtag überschreitet, weil ein oder mehrere Objekte, die er benötigt, nicht ausgeführt werden, sollte die Monikerimplementierung die im Bindungskontext zuständigen 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 der Millisekunden seit dem Systemstart an und wird nach 2^31 Millisekunden wieder auf null umgebrochen. Daher sollten Aufrufer darauf achten, dass sie nicht versehentlich einen Nullwert übergeben (was keinen Stichtag angibt), und Monikerimplementierungen sollten sich über 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, obwohl ein geeigneter Mechanismus vorhanden ist. 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 vom 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 .

hwnd

Ein Handle für das Fenster, das ggf. besitzer der Benutzeroberfläche für erhöhte Rechte wird. Wenn hwndNULL ist, ruft COM die GetActiveWindow-Funktion auf, um ein Fensterhandle zu finden, das dem aktuellen Thread zugeordnet ist. Dieser Fall kann auftreten, wenn der Client ein Skript ist, das keine BIND_OPTS3 Struktur ausfüllen kann. In diesem Fall versucht COM, das Fenster zu verwenden, das dem Skriptthread zugeordnet ist.

Hinweise

Eine BIND_OPTS3-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 mit den Bindungsoptionen, die auf Standardwerte festgelegt sind, die für die meisten Situationen geeignet sind. Die BindMoniker-Funktion führt dasselbe aus, 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_OPTS3-Struktur an die IBindCtx::SetBindOptions-Methode übergeben. Moniker-Implementierungen können eine BIND_OPTS3-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

CreateBindCtx

Ibindctx

Imoniker