Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
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
OnDataAvailableazonosítja.BSCF_INTERMEDIATEDATANOTIFICATION Egy kötési művelethez kapcsolódó
OnDataAvailableközvetítői hívás azonosítása.BSCF_LASTDATANOTIFICATION Egy kötési művelet utolsó hívását
OnDataAvailableazonosí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