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 asynchronicznego monikera może wybrać między modelem ściągania danych i wypychania danych w celu prowadzenia asynchronicznej IMoniker::BindToStorage operacji i otrzymywania powiadomień asynchronicznych. W modelu ściągania danych klient obsługuje operację wiązania, a moniker dostarcza dane klientowi tylko podczas jego odczytu. Innymi słowy, po pierwszym wywołaniu metody IBindStatusCallback::OnDataAvailable, moniker nie dostarcza żadnych danych do klienta, chyba że klient zużyje wszystkie dostępne już dane.
Ponieważ dane są pobierane tylko w żądany sposób, klienci, którzy wybierają model ściągania danych, muszą mieć pewność, że dane są odczytywane w odpowiednim czasie. W przypadku pobierania z Internetu za pomocą monikers adresów URLoperacja powiązania może zakończyć się niepowodzeniem, jeśli klient czeka zbyt długo przed zażądaniem większej ilości danych.
W modelu wypychania danych moniker napędza operację powiązania asynchronicznego i stale powiadamia klienta za każdym razem, gdy są dostępne nowe dane. Klient może zdecydować, czy odczytywać dane w dowolnym momencie podczas operacji wiązania, ale moniker będzie napędzać operację wiązania do ukończenia niezależnie od tego.
Ponadto należy pamiętać, aby postępować zgodnie z regułami MODELU COM dotyczącymi alokacji pamięci podczas korzystania z asynchronicznych elementów monikerowych, w szczególności następujących:
- Za każdym razem, gdy interfejs COM lub wywołanie funkcji zwraca bufor (ciąg lub inny) do klienta, klient jest odpowiedzialny za zwolnienie pamięci przez wywołanie CoTaskMemFree.
- Za każdym razem, gdy interfejs COM lub funkcja wymaga buforu od klienta, klient musi przydzielić ten bufor przy użyciu CoTaskMemAlloc, a obiekt wywoływany musi go zwolnić.
Pamiętaj, aby przestrzegać tych reguł podczas przydzielania ciągów lub przekazywanych do asynchronicznych jednostek monikerów i pamiętaj, aby zwolnić pamięć zwracaną przez asynchroniczne elementy monikerów. Aby uzyskać szczegółowe informacje, zobacz Zarządzanie alokacją pamięci i powiązane tematy.
Tematy pokrewne