CAsyncMonikerFile osztály

Megjegyzés:

A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

Az aszinkron monikerek ActiveX-vezérlőkben (korábbi nevén OLE-vezérlőkben) való használatára szolgál.

Szemantika

class CAsyncMonikerFile : public CMonikerFile

Tagok

Nyilvános konstruktorok

Név Description
CAsyncMonikerFile::CAsyncMonikerFile Egy CAsyncMonikerFile objektumot hoz létre.

Nyilvános metódusok

Név Description
CAsyncMonikerFile::Close Bezárja és felszabadítja az összes erőforrást.
CAsyncMonikerFile::GetBinding Az aszinkron átviteli kötésre mutató mutatót kér le.
CAsyncMonikerFile::GetFormatEtc Lekéri a streamben lévő adatok formátumát.
CAsyncMonikerFile::Open Aszinkron módon nyit meg egy fájlt.

Védett metódusok

Név Description
CAsyncMonikerFile::CreateBindStatusCallback Létrehoz egy com-objektumot, amely implementálja a elemet IBindStatusCallback.
CAsyncMonikerFile::GetBindInfo Az OLE rendszerkódtár meghívta, hogy információt kérjen a létrehozandó kötés típusáról.
CAsyncMonikerFile::GetPriority Az OLE rendszerkódtár meghívja a kötés prioritásának lekéréséhez.
CAsyncMonikerFile::OnDataAvailable Az aszinkron kötési műveletek során az ügyfél számára elérhetővé váló adatok megadására van meghívva.
CAsyncMonikerFile::OnLowResource Akkor hívjuk meg, ha az erőforrások alacsonyak.
CAsyncMonikerFile::OnProgress Az adatletöltési folyamat előrehaladásának jelzésére van meghívva.
CAsyncMonikerFile::OnStartBinding A kötés indításakor hívjuk.
CAsyncMonikerFile::OnStopBinding Az aszinkron átvitel leállításakor hívjuk meg.

Megjegyzések

A CMonikerFile-ból származtatva, amely viszont a COleStreamFile-ból származik, CAsyncMonikerFile az IMoniker felület használatával aszinkron módon éri el az adatfolyamokat, beleértve a fájlok url-címről való aszinkron betöltését is. A fájlok lehetnek az ActiveX-vezérlők datapath tulajdonságai.

Az aszinkron monikereket elsősorban az internetes alkalmazásokban és az ActiveX-vezérlőkben használják, hogy rugalmas felhasználói felületet biztosítsanak a fájlátvitel során. Erre példa a CDataPathProperty használata az ActiveX-vezérlők aszinkron tulajdonságainak biztosítására. Az CDataPathProperty objektum ismételten visszahívást kap, amely jelzi az új adatok rendelkezésre állását egy hosszú tulajdonságcsere-folyamat során.

Az aszinkron monikerek és ActiveX-vezérlők internetes alkalmazásokban való használatáról az alábbi cikkekben talál további információt:

Öröklési hierarchia

CObject

CFile

COleStreamFile

CMonikerFile

CAsyncMonikerFile

Requirements

Fejléc: afxole.h

CAsyncMonikerFile::CAsyncMonikerFile

Egy CAsyncMonikerFile objektumot hoz létre.

CAsyncMonikerFile();

Megjegyzések

Nem hozza létre a IBindHost felületet. IBindHost csak akkor használatos, ha a Open tagfüggvényben adja meg.

A felület leírásáért IBindHost tekintse meg a Windows SDK-t.

CAsyncMonikerFile::Close

Hívja meg ezt a függvényt az összes erőforrás bezárásához és kiadásához.

virtual void Close();

Megjegyzések

Nem megnyitott vagy már lezárt fájlokra is meghívható.

CAsyncMonikerFile::CreateBindStatusCallback

Létrehoz egy com-objektumot, amely implementálja a elemet IBindStatusCallback.

virtual IUnknown* CreateBindStatusCallback(IUnknown* pUnkControlling);

Paraméterek

pUnkControlling
A vezérlő ismeretlen (külső IUnknown) vagy NULL értékére mutató mutató, ha nem használ összesítést.

Visszaadott érték

Ha a pUnkControlling nem NULL értékű, a függvény egy mutatót ad vissza a belsőre IUnknown egy új COM-objektumon, amely támogatja IBindStatusCallback. Null érték esetén pUnkControlling a függvény egy mutatót ad vissza egy IUnknown új COM-objektumhoz, amely támogatja a parancsot IBindStatusCallback.

Megjegyzések

CAsyncMonikerFile olyan COM-objektumot igényel, amely implementálja a elemet IBindStatusCallback. Az MFC implementál egy ilyen objektumot, és összesíthető. Felülbírálhatja CreateBindStatusCallback a saját COM-objektum visszaadásához. A COM-objektum összesítheti az MFC implementációját a COM-objektum vezérlő ismeretlen vezérlőjével való hívással CreateBindStatusCallback . A COM-támogatással CCmdTarget implementált COM-objektumok lekérhetik az ismeretlen vezérlőt a használatával CCmdTarget::GetControllingUnknown.

Másik lehetőségként a COM-objektum meghívásával CreateBindStatusCallback( NULL )delegálhatja az MFC implementációját.

CAsyncMonikerFile::HívásokCreateBindStatusCallbackmegnyitása.

Az aszinkron monikerekről és az aszinkron kötésről további információt az IBindStatusCallback felület és az Aszinkron kötés és tárolás működése című témakörben talál. Az összesítésről az Összesítés című témakörben olvashat. Mindhárom témakör a Windows SDK-ban található.

CAsyncMonikerFile::GetBindInfo

Egy aszinkron moniker ügyfélétől hívva meg kell mondania az aszinkron monikernek, hogyan szeretné megkötni.

virtual DWORD GetBindInfo() const;

Visszaadott érték

Lekéri a beállításokat a következőhöz IBindStatusCallBack: . A felület leírásáért IBindStatusCallback tekintse meg a Windows SDK-t.

Megjegyzések

Az alapértelmezett implementáció a kötést aszinkronra állítja, tárolóeszközt (streamet) használ, és az adatleküldési modellt használja. Bírálja felül ezt a függvényt, ha módosítani szeretné a kötés viselkedését.

Ennek egyik oka az lenne, ha az adatbeküldési modell helyett az adat lekéréses modellt használná. Adat lekéréses modellben az ügyfél hajtja a kötési műveletet, a moniker pedig csak olvasáskor szolgáltat adatokat az ügyfélnek. Az adatküldési modellben a moniker hajtja az aszinkron kötési műveletet, és folyamatosan értesíti az ügyfelet, amikor új adatok állnak rendelkezésre.

CAsyncMonikerFile::GetBinding

Hívja meg ezt a függvényt az aszinkron átviteli kötés mutatójának lekéréséhez.

IBinding* GetBinding() const;

Visszaadott érték

Az aszinkron átvitel indításakor megadott felületre mutató mutató IBinding . Null értéket ad vissza, ha az átvitel bármilyen okból nem végezhető el aszinkron módon.

Megjegyzések

Ez lehetővé teszi az adatátviteli folyamat szabályozását az IBinding interfészen keresztül, például a IBinding::Abort, IBinding::Pauseés IBinding::Resume.

A felület leírásáért IBinding tekintse meg a Windows SDK-t.

CAsyncMonikerFile::GetFormatEtc

Hívja meg ezt a függvényt a streamben lévő adatok formátumának lekéréséhez.

FORMATETC* GetFormatEtc() const;

Visszaadott érték

Mutató a Windows-struktúra FORMATETC-ére az aktuálisan megnyitott streamhez. Null értéket ad vissza, ha a moniker nincs megkötve, ha nem aszinkron, vagy ha az aszinkron művelet nem kezdődött el.

CAsyncMonikerFile::GetPriority

Egy aszinkron moniker ügyfélétől hívva, mivel a kötési folyamat elkezdi megkapni a kötési művelet szálának megadott prioritást.

virtual LONG GetPriority() const;

Visszaadott érték

Az a prioritás, amelynél az aszinkron átvitel megtörténik. Az egyik szabványos szál prioritási jelző: THREAD_PRIORITY_ABOVE_NORMAL, THREAD_PRIORITY_BELOW_NORMAL, THREAD_PRIORITY_HIGHEST, THREAD_PRIORITY_IDLE, THREAD_PRIORITY_LOWEST, THREAD_PRIORITY_NORMAL és THREAD_PRIORITY_TIME_CRITICAL. Az értékek leírását a Windows SetThreadPriority függvényében talál.

Megjegyzések

GetPriority nem hívható meg közvetlenül. THREAD_PRIORITY_NORMAL az alapértelmezett implementáció adja vissza.

CAsyncMonikerFile::OnDataAvailable

Az aszinkron moniker az aszinkron kötési műveletek során meghívja OnDataAvailable az ügyfél számára az adatok megadását, amint az elérhetővé válik.

virtual void OnDataAvailable(DWORD dwSize, DWORD bscfFlag);

Paraméterek

dwSize
A kötés kezdete óta elérhető adatok összesített mennyisége (bájtban kifejezve). Nulla is lehet, ami azt jelzi, hogy az adatok mennyisége nem releváns a művelet szempontjából, vagy hogy nem érhető el konkrét mennyiség.

bscfFlag
BSCF enumerálási érték. Az alábbi értékek közül egy vagy több lehet:

  • BSCF_FIRSTDATANOTIFICATION Egy adott kötési művelet első hívását OnDataAvailable azonosítja.

  • BSCF_INTERMEDIATEDATANOTIFICATION Egy kötési művelethez kapcsolódó OnDataAvailable közvetítői hívás azonosítása.

  • BSCF_LASTDATANOTIFICATION Egy kötési művelet utolsó hívását OnDataAvailable azonosítja.

Megjegyzések

A függvény alapértelmezett implementációja nem végez semmit. Tekintse meg az alábbi példát egy minta implementációhoz.

Example

void CMyMoniker::OnDataAvailable(DWORD dwSize, DWORD bscfFlag)
{
   if ((bscfFlag & BSCF_FIRSTDATANOTIFICATION) != 0)
   {
      m_dwReadBefore = 0;
      m_strText.Empty();
   }

   DWORD dwArriving = dwSize - m_dwReadBefore;

   if (dwArriving > 0)
   {
      int nLen = m_strText.GetLength();
      ASSERT((DWORD)nLen == m_dwReadBefore);
      LPTSTR psz = m_strText.GetBuffer(nLen + dwArriving);
      Read(psz + nLen, dwArriving);
      m_strText.ReleaseBuffer(nLen + dwArriving);
      m_dwReadBefore = dwSize;
   }
}

CAsyncMonikerFile::OnLowResource

A moniker hívja meg, ha az erőforrások alacsonyak.

virtual void OnLowResource();

Megjegyzések

Az alapértelmezett megvalósítási hívások GetBinding( )-> Abort( ).

CAsyncMonikerFile::OnProgress

A moniker ismételten meghívja, hogy jelezze a kötési művelet aktuális állapotát, általában ésszerű időközönként egy hosszú művelet során.

virtual void OnProgress(
    ULONG ulProgress,
    ULONG ulProgressMax,
    ULONG ulStatusCode,
    LPCTSTR szStatusText);

Paraméterek

ulProgress
A kötési művelet aktuális állapotát jelzi az ulProgressMaxban jelzett várt maximális értékhez képest.

ulProgressMax
Az ulProgress várható maximális értékét jelzi a műveletre OnProgress irányuló hívások időtartamára vonatkozóan.

ulStatusCode
További információt nyújt a kötési művelet előrehaladásáról. Az érvényes értékek az BINDSTATUS enumerálásból származnak. A lehetséges értékeket lásd: Megjegyzések.

szStatusText
Információk az aktuális folyamatról az ulStatusCode értékétől függően. A lehetséges értékeket lásd: Megjegyzések.

Megjegyzések

Az ulStatusCode (és az egyes értékekhez tartozó szStatusText ) lehetséges értékei a következők:

Érték Description
BINDSTATUS_FINDINGRESOURCE A kötési művelet megkeresi azt az erőforrást, amely a kötött objektumot vagy tárolót tartalmazza. A szStatusText a keresett erőforrás megjelenítendő nevét adja meg (például "www.microsoft.com").
BINDSTATUS_CONNECTING A kötési művelet ahhoz az erőforráshoz csatlakozik, amelyhez az objektum vagy a tároló van kötve. A szStatusText megadja a csatlakoztatott erőforrás megjelenítendő nevét (például egy IP-címet).
BINDSTATUS_SENDINGREQUEST A kötési művelet azt az objektumot vagy tárat kéri, amelyhez hozzá van kötve. A szStatusText az objektum megjelenítendő nevét (például egy fájlnevet) adja meg.
BINDSTATUS_REDIRECTING A kötési műveletet átirányítottuk egy másik adathelyre. A szStatusText az új adathely megjelenítendő nevét adja meg.
BINDSTATUS_USINGCACHEDCOPY A kötési művelet lekérte a kért objektumot vagy tárat egy gyorsítótárazott másolatból. Az szStatusText értéke NULL.
BINDSTATUS_BEGINDOWNLOADDATA A kötési művelet megkezdte azt az objektumot vagy tárolót, amelyhez hozzá van kötve. Az szStatusText az adathely megjelenítendő nevét adja meg.
BINDSTATUS_DOWNLOADINGDATA A kötési művelet továbbra is megkapja azt az objektumot vagy tárolót, amelyhez hozzá van kötve. Az szStatusText az adathely megjelenítendő nevét adja meg.
BINDSTATUS_ENDDOWNLOADDATA A kötési művelet befejeződött, és megkapta azt az objektumot vagy tárolót, amelyhez hozzá van kötve. Az szStatusText az adathely megjelenítendő nevét adja meg.
BINDSTATUS_CLASSIDAVAILABLE A kötés alatt álló objektum egy példánya hamarosan létrejön. Az szStatusText sztringformátumban biztosítja az új objektum CLSID azonosítóját, így az ügyfél igény szerint megszakíthatja a kötési műveletet.

CAsyncMonikerFile::OnStartBinding

Felülbírálja ezt a függvényt a származtatott osztályokban, hogy műveleteket hajtson végre a kötés indításakor.

virtual void OnStartBinding();

Megjegyzések

Ezt a függvényt a moniker hívja vissza. Az alapértelmezett implementáció nem végez semmit.

CAsyncMonikerFile::OnStopBinding

A kötési művelet végén a moniker hívja meg.

virtual void OnStopBinding(HRESULT hresult, LPCTSTR szError);

Paraméterek

hresult
A hiba vagy a figyelmeztető érték HRESULT értéke.

szErrort
A hibát leíró karaktersztring.

Megjegyzések

Felülbírálja ezt a függvényt a műveletek végrehajtásához az átvitel leállításakor. Alapértelmezés szerint a függvény kibocsát.IBinding

A felület leírásáért IBinding tekintse meg a Windows SDK-t.

CAsyncMonikerFile::Open

A tagfüggvény meghívása fájl aszinkron megnyitásához.

virtual BOOL Open(
    LPCTSTR lpszURL,
    CFileException* pError = NULL);

virtual BOOL Open(
    IMoniker* pMoniker,
    CFileException* pError = NULL);

virtual BOOL Open(
    LPCTSTR lpszURL,
    IBindHost* pBindHost,
    CFileException* pError = NULL);

virtual BOOL Open(
    IMoniker* pMoniker,
    IBindHost* pBindHost,
    CFileException* pError = NULL);

virtual BOOL Open(
    LPCTSTR lpszURL,
    IServiceProvider* pServiceProvider,
    CFileException* pError = NULL);

virtual BOOL Open(
    IMoniker* pMoniker,
    IServiceProvider* pServiceProvider,
    CFileException* pError = NULL);

virtual BOOL Open(
    LPCTSTR lpszURL,
    IUnknown* pUnknown,
    CFileException* pError = NULL);

virtual BOOL Open(
    IMoniker* pMoniker,
    IUnknown* pUnknown,
    CFileException* pError = NULL);

Paraméterek

lpszURL
Az aszinkron módon megnyitni kívánt fájlra mutató mutató. A fájl lehet bármilyen érvényes URL-cím vagy fájlnév.

pError
A fájl kivételekre mutató mutató. Hiba esetén az ok lesz beállítva.

pMoniker
Az aszinkron moniker felületére IMonikermutató mutató, egy pontos moniker, amely a dokumentum saját monikerének kombinációja, amellyel IOleClientSite::GetMoniker(OLEWHICHMK_CONTAINER)lekérhető, és egy, az elérési út nevéből létrehozott moniker. A vezérlő ezt a monikert használhatja a kötéshez, de ez nem az a moniker, amelyet a vezérlőnek mentenie kell.

pBindHost
A moniker egy potenciálisan relatív elérési útnévből való létrehozásához használt felületre mutató mutató IBindHost . Ha a kötés gazdagépe érvénytelen, vagy nem biztosít bevételt, a hívás alapértelmezés szerint a következő lesz Open(lpszFileName,pError): . A felület leírásáért IBindHost tekintse meg a Windows SDK-t.

pServiceProvider
A felületre mutató IServiceProvider mutató. Ha a szolgáltató érvénytelen, vagy nem tudja biztosítani a szolgáltatást IBindHost, a hívás alapértelmezés szerint a következő lesz Open(lpszFileName,pError): .

pUnknown
A felületre mutató IUnknown mutató. Ha IServiceProvider megtalálható, a függvény lekérdezi a következőt IBindHost: . Ha a szolgáltató érvénytelen, vagy nem tudja biztosítani a szolgáltatást IBindHost, a hívás alapértelmezés szerint a következő lesz Open(lpszFileName,pError): .

Visszaadott érték

Nonzero, ha a fájl sikeresen meg van nyitva; egyéb esetben 0.

Megjegyzések

Ez a hívás elindítja a kötési folyamatot.

Az lpszURL paraméter url-címét vagy fájlnevét is használhatja. Például:

CMyMoniker *pMyMoniker = new CMyMoniker();
pMyMoniker->Open(_T("http://www.microsoft.com"));

-vagy-

CMyMoniker *pMyMoniker = new CMyMoniker();
pMyMoniker->Open(_T("file:c:\\mydata.dat"));

Lásd még

CMonikerFile osztály
hierarchiadiagram
CMonikerFile osztály
CDataPathProperty osztály