Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Klient może sprawdzić, czy moniker jest asynchroniczny, wywołując funkcję IsAsyncMoniker. Jeśli klient zwraca flagę BINDF_ASYNCHRONOUS, to zamiast zwracać wskaźnik obiektu lub wskaźnik magazynu z kolejnych wywołań do IMoniker::BindToStorage lub IMoniker::BindToObject, moniker zwraca MK_S_ASYNCHRONOUS zamiast wskaźnika obiektu i NULL zamiast wskaźnika magazynu. W odpowiedzi klient powinien poczekać na odebranie żądanego obiektu lub magazynu podczas implementacji IBindStatusCallback::OnDataAvailable i IBindStatusCallBack::OnObjectAvailable.
Obiekt wywołania zwrotnego otrzymuje również powiadomienia o postępie za pomocą IBindStatusCallback::OnProgress, powiadomienia o dostępności danych za pośrednictwem OnDataAvailableoraz różne inne powiadomienia od monikera o stanie operacji powiązania.
Jeśli klient nie zwróci flagi BINDF_ASYNCHRONOUS z wywołania monikera do IBindStatusCallback::GetBindInfo, operacja powiązania będzie przeprowadzana synchronicznie, a obiekt lub magazyn zostanie zwrócony z kolejnych wywołań do BindToObject lub BindToStorage. Podobnie, jeśli klient chce wykonać operację synchronicznie i nie chce otrzymywać żadnych powiadomień o postępie lub wywołań zwrotnych, może zażądać monikera asynchronicznego, który zachowuje się synchronicznie, nie implementując IBindStatusCallback. W takich przypadkach asynchroniczny znacznik będzie działał jak standardowy synchroniczny znacznik.
Tematy pokrewne