Asynchrone und synchrone Moniker
Ein Client eines standardmäßigen, synchronen OLE-Monikers erstellt und enthält in der Regel einen Verweis auf den Moniker sowie den Bindungskontext, der während der Bindung verwendet werden soll. Die Komponenten, die bei der Verwendung herkömmlicher Moniker beteiligt sind, sind im folgenden Diagramm dargestellt.
Clients erstellen in der Regel Standardmoniker, indem Sie Funktionen wie CreateFileMoniker, CreateItemMoniker oder CreatePointerMoniker aufrufen, oder, da sie in persistentem Speicher gespeichert werden können, über OleSaveToStream und OleLoadFromStream. Monikers können auch aus einem Containerobjekt abgerufen werden, indem die IBindHost::CreateMoniker-Methode aufgerufen wird . Clients erstellen Bindungskontexte, indem sie die CreateBindCtx-Funktion aufrufen und dann den Bindungskontext mit Aufrufen von IMoniker::BindToStorage oder IMoniker::BindToObject an den Moniker übergeben.
Wie im folgenden Diagramm gezeigt, erstellt und enthält ein Client eines asynchronen Monikers auch einen Verweis auf den Moniker- und Bindungskontext, der während der Bindung verwendet werden soll.
Um asynchrones Verhalten abzurufen, implementiert der Client die IBindStatusCallback-Schnittstelle für ein bind-status-callback-Objekt und ruft entweder die Funktion RegisterBindStatusCallback oder die CreateAsyncBindCtx-Funktion auf, um diese Schnittstelle beim Bindungskontext zu registrieren. Der Moniker übergibt einen Zeiger an seine IBinding-Schnittstelle in einem Aufruf der IBindStatusCallback::OnStartBinding-Methode . Der Client teilt dem asynchronen Moniker mit, wie er bei der Rückgabe des Aufrufs des Monikers an die IBindStatusCallback::GetBindInfo-Methode gebunden werden soll.
Zugehörige Themen