Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Biedt functionaliteit voor het gebruik van asynchrone monikers in ActiveX-besturingselementen (voorheen OLE-besturingselementen).
Syntaxis
class CAsyncMonikerFile : public CMonikerFile
Leden
Openbare constructors
| Naam | Description |
|---|---|
| CAsyncMonikerFile::CAsyncMonikerFile | Maakt een CAsyncMonikerFile object. |
Openbare methoden
| Naam | Description |
|---|---|
| CAsyncMonikerFile::Close | Hiermee worden alle resources gesloten en vrijgegeven. |
| CAsyncMonikerFile::GetBinding | Hiermee wordt een aanwijzer opgehaald naar de asynchrone overdrachtsbinding. |
| CAsyncMonikerFile::GetFormatEtc | Hiermee haalt u de indeling van de gegevens in de stream op. |
| CAsyncMonikerFile::Open | Hiermee opent u asynchroon een bestand. |
Beveiligde methoden
| Naam | Description |
|---|---|
| CAsyncMonikerFile::CreateBindStatusCallback | Hiermee maakt u een COM-object dat wordt geïmplementeerd IBindStatusCallback. |
| CAsyncMonikerFile::GetBindInfo | Wordt aangeroepen door de OLE-systeembibliotheek om informatie op te vragen over het type binding dat moet worden gemaakt. |
| CAsyncMonikerFile::GetPriority | Aangeroepen door de OLE-systeembibliotheek om de prioriteit van de binding op te halen. |
| CAsyncMonikerFile::OnDataAvailable | Aangeroepen om gegevens op te geven zodra deze beschikbaar worden voor de client tijdens asynchrone bindingsbewerkingen. |
| CAsyncMonikerFile::OnLowResource | Wordt aangeroepen wanneer resources laag zijn. |
| CAsyncMonikerFile::OnProgress | Wordt aangeroepen om de voortgang van het downloaden van gegevens aan te geven. |
| CAsyncMonikerFile::OnStartBinding | Wordt aangeroepen wanneer de binding wordt gestart. |
| CAsyncMonikerFile::OnStopBinding | Aangeroepen wanneer asynchrone overdracht wordt gestopt. |
Opmerkingen
Afgeleid van CMonikerFile, dat op zijn beurt is afgeleid van COleStreamFile, CAsyncMonikerFile gebruikt de IMoniker-interface om asynchroon toegang te krijgen tot gegevensstromen, waaronder het asynchroon laden van bestanden vanuit een URL. De bestanden kunnen gegevenspadeigenschappen van ActiveX-besturingselementen zijn.
Asynchrone monikers worden voornamelijk gebruikt in toepassingen met internet en ActiveX-besturingselementen om een responsieve gebruikersinterface te bieden tijdens bestandsoverdrachten. Een goed voorbeeld hiervan is het gebruik van CDataPathProperty om asynchrone eigenschappen voor ActiveX-besturingselementen te bieden. Het CDataPathProperty object krijgt herhaaldelijk een callback om de beschikbaarheid van nieuwe gegevens aan te geven tijdens een langdurige uitwisseling van eigenschappen.
Zie de volgende artikelen voor meer informatie over het gebruik van asynchrone monikers en ActiveX-besturingselementen in internettoepassingen:
Overnamehiërarchie
CAsyncMonikerFile
Requirements
Koptekst: afxole.h
CAsyncMonikerFile::CAsyncMonikerFile
Maakt een CAsyncMonikerFile object.
CAsyncMonikerFile();
Opmerkingen
De interface wordt niet gemaakt IBindHost .
IBindHost wordt alleen gebruikt als u deze opgeeft in de Open lidfunctie.
Zie de Windows SDK voor een beschrijving van de IBindHost interface.
CAsyncMonikerFile::Close
Roep deze functie aan om alle resources te sluiten en los te laten.
virtual void Close();
Opmerkingen
Kan worden aangeroepen op niet-geopende of al gesloten bestanden.
CAsyncMonikerFile::CreateBindStatusCallback
Hiermee maakt u een COM-object dat wordt geïmplementeerd IBindStatusCallback.
virtual IUnknown* CreateBindStatusCallback(IUnknown* pUnkControlling);
Parameterwaarden
pUnkControlling
Een aanwijzer naar het beheer onbekend (het buitenste IUnknown) of NULL als er geen aggregatie wordt gebruikt.
Retourwaarde
Als pUnkControlling niet NULL is, retourneert de functie een aanwijzer naar de binnenkant IUnknown van een nieuw COM-object dat wordt ondersteund IBindStatusCallback. Als pUnkControlling null is, retourneert de functie een aanwijzer naar een IUnknown nieuw COM-object dat wordt ondersteund IBindStatusCallback.
Opmerkingen
CAsyncMonikerFile vereist een COM-object dat wordt geïmplementeerd IBindStatusCallback. MFC implementeert een dergelijk object en kan worden samengevoegd. U kunt overschrijven CreateBindStatusCallback om uw eigen COM-object te retourneren. Uw COM-object kan de implementatie van MFC aggregeren door aan te roepen CreateBindStatusCallback met de controle onbekend van uw COM-object. COM-objecten die zijn geïmplementeerd met behulp van de CCmdTarget COM-ondersteuning, kunnen het beheer onbekend ophalen met behulp van CCmdTarget::GetControllingUnknown.
U kunt uw COM-object ook delegeren aan de implementatie van MFC door aan te roepen CreateBindStatusCallback( NULL ).
CAsyncMonikerFile::Open aanroepen CreateBindStatusCallback.
Zie de IBindStatusCallback-interface en hoe Asynchrone binding en hoe Asynchrone binding en storage werken voor meer informatie over asynchrone monikers en asynchrone bindingen. Zie Aggregatie voor een bespreking van aggregatie. Alle drie de onderwerpen bevinden zich in de Windows SDK.
CAsyncMonikerFile::GetBindInfo
Aangeroepen vanaf de client van een asynchrone moniker om de asynchrone moniker te vertellen hoe het wil binden.
virtual DWORD GetBindInfo() const;
Retourwaarde
Haalt de instellingen voor IBindStatusCallBack. Zie de Windows SDK voor een beschrijving van de IBindStatusCallback interface.
Opmerkingen
De standaard implementatie stelt de binding in op asynchroon, om een opslagmedium (een stream) te gebruiken en het gegevenspushmodel te gebruiken. Overschrijf deze functie als u het gedrag van de binding wilt wijzigen.
Een van de redenen hiervoor is het binden met behulp van het gegevens pull-model in plaats van het gegevenspushmodel. In een gegevens pull-model stuurt de client de bindingsbewerking aan en levert de moniker alleen gegevens aan de client wanneer deze wordt gelezen. In een gegevenspushmodel wordt met de moniker de asynchrone bindingsbewerking aangestuurd en wordt de client continu op de hoogte gesteld wanneer er nieuwe gegevens beschikbaar zijn.
CAsyncMonikerFile::GetBinding
Roep deze functie aan om een aanwijzer op te halen naar de asynchrone overdrachtsbinding.
IBinding* GetBinding() const;
Retourwaarde
Een aanwijzer naar de IBinding interface die wordt opgegeven wanneer asynchrone overdracht begint. Retourneert NULL als de overdracht om welke reden dan ook niet asynchroon kan worden uitgevoerd.
Opmerkingen
Zo kunt u het proces voor gegevensoverdracht beheren via de IBinding interface, bijvoorbeeld met IBinding::Abort, IBinding::Pauseen IBinding::Resume.
Zie de Windows SDK voor een beschrijving van de IBinding interface.
CAsyncMonikerFile::GetFormatEtc
Roep deze functie aan om de indeling van de gegevens in de stream op te halen.
FORMATETC* GetFormatEtc() const;
Retourwaarde
Een aanwijzer naar de Windows-structuur FORMATETC voor de momenteel geopende stream. Retourneert NULL als de moniker niet is gebonden, als deze niet asynchroon is of als de asynchrone bewerking niet is gestart.
CAsyncMonikerFile::GetPriority
Aangeroepen vanaf de client van een asynchrone moniker wanneer het bindingsproces de prioriteit krijgt die aan de thread voor de bindingsbewerking wordt gegeven.
virtual LONG GetPriority() const;
Retourwaarde
De prioriteit waarop de asynchrone overdracht plaatsvindt. Een van de standaardthreadprioriteitsvlagmen: THREAD_PRIORITY_ABOVE_NORMAL, THREAD_PRIORITY_BELOW_NORMAL, THREAD_PRIORITY_HIGHEST, THREAD_PRIORITY_IDLE, THREAD_PRIORITY_LOWEST, THREAD_PRIORITY_NORMAL en THREAD_PRIORITY_TIME_CRITICAL. Zie de Windows-functie SetThreadPriority voor een beschrijving van deze waarden.
Opmerkingen
GetPriority mag niet rechtstreeks worden aangeroepen. THREAD_PRIORITY_NORMAL wordt geretourneerd door de standaard implementatie.
CAsyncMonikerFile::OnDataAvailable
Een asynchrone monikeraanroepen OnDataAvailable om gegevens aan de client te bieden zodra deze beschikbaar is, tijdens asynchrone bindingsbewerkingen.
virtual void OnDataAvailable(DWORD dwSize, DWORD bscfFlag);
Parameterwaarden
dwSize
De cumulatieve hoeveelheid gegevens (in bytes) die beschikbaar is sinds het begin van de binding. Kan nul zijn, waarmee wordt aangegeven dat de hoeveelheid gegevens niet relevant is voor de bewerking of dat er geen specifieke hoeveelheid beschikbaar is.
bscfFlag
Een BSCF-opsommingswaarde. Dit kunnen een of meer van de volgende waarden zijn:
BSCF_FIRSTDATANOTIFICATION Identificeert de eerste aanroep voor
OnDataAvailableeen bepaalde bindingsbewerking.BSCF_INTERMEDIATEDATANOTIFICATION Identificeert een tussenliggende aanroep
OnDataAvailablevoor een bindingsbewerking.BSCF_LASTDATANOTIFICATION Identificeert de laatste aanroep
OnDataAvailablevoor een bindingsbewerking.
Opmerkingen
De standaard implementatie van deze functie doet niets. Zie het volgende voorbeeld voor een voorbeeld van een implementatie.
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
Aangeroepen door de moniker wanneer resources laag zijn.
virtual void OnLowResource();
Opmerkingen
De standaard-implementatie-aanroepen GetBinding( )-> Abort( ).
CAsyncMonikerFile::OnProgress
Wordt herhaaldelijk aangeroepen door de moniker om de huidige voortgang van deze bindingsbewerking aan te geven, meestal met redelijke intervallen tijdens een langdurige bewerking.
virtual void OnProgress(
ULONG ulProgress,
ULONG ulProgressMax,
ULONG ulStatusCode,
LPCTSTR szStatusText);
Parameterwaarden
ulProgress
Geeft de huidige voortgang van de bindingsbewerking aan ten opzichte van het verwachte maximum dat wordt aangegeven in ulProgressMax.
ulProgressMax
Geeft de verwachte maximumwaarde van ulProgress aan voor de duur van aanroepen voor OnProgress deze bewerking.
ulStatusCode
Biedt aanvullende informatie over de voortgang van de bindingsbewerking. Geldige waarden worden opgehaald uit de BINDSTATUS opsomming. Zie Opmerkingen voor mogelijke waarden.
szStatusText
Informatie over de huidige voortgang, afhankelijk van de waarde van ulStatusCode. Zie Opmerkingen voor mogelijke waarden.
Opmerkingen
Mogelijke waarden voor ulStatusCode (en de szStatusText voor elke waarde) zijn:
| Waarde | Description |
|---|---|
| BINDSTATUS_FINDINGRESOURCE | Met de bindingsbewerking wordt gezocht naar de resource waaraan het object of de opslag is gebonden. De szStatusText bevat de weergavenaam van de resource die wordt gezocht (bijvoorbeeld "www.microsoft.com"). |
| BINDSTATUS_CONNECTING | De bindingsbewerking maakt verbinding met de resource waaraan het object of de opslag is gebonden. De szStatusText bevat de weergavenaam van de resource die wordt verbonden met (bijvoorbeeld een IP-adres). |
| BINDSTATUS_SENDINGREQUEST | De bindingsbewerking vraagt het object of de opslag aan die is gebonden. De szStatusText bevat de weergavenaam van het object (bijvoorbeeld een bestandsnaam). |
| BINDSTATUS_REDIRECTING | De bindingsbewerking is omgeleid naar een andere gegevenslocatie. De szStatusText bevat de weergavenaam van de nieuwe gegevenslocatie. |
| BINDSTATUS_USINGCACHEDCOPY | Met de bindingsbewerking wordt het aangevraagde object of de aangevraagde opslag opgehaald uit een kopie in de cache. De szStatusText is NULL. |
| BINDSTATUS_BEGINDOWNLOADDATA | De bindingsbewerking is begonnen met het ontvangen van het object of de opslag waaraan is gebonden. De szStatusText bevat de weergavenaam van de gegevenslocatie. |
| BINDSTATUS_DOWNLOADINGDATA | De bindingsbewerking blijft het object of de opslag ontvangen waaraan is gebonden. De szStatusText bevat de weergavenaam van de gegevenslocatie. |
| BINDSTATUS_ENDDOWNLOADDATA | De bindingsbewerking is voltooid met het ontvangen van het object of de opslag waaraan is gebonden. De szStatusText bevat de weergavenaam van de gegevenslocatie. |
| BINDSTATUS_CLASSIDAVAILABLE | Een exemplaar van het object waarnaar wordt gebonden, staat op het punt om te worden gemaakt. De szStatusText biedt de CLSID van het nieuwe object in tekenreeksindeling, zodat de client desgewenst de bindingsbewerking kan annuleren. |
CAsyncMonikerFile::OnStartBinding
Overschrijf deze functie in uw afgeleide klassen om acties uit te voeren wanneer de binding wordt gestart.
virtual void OnStartBinding();
Opmerkingen
Deze functie wordt teruggeroepen door de moniker. De standaard implementatie doet niets.
CAsyncMonikerFile::OnStopBinding
Aangeroepen door de moniker aan het einde van de bindingsbewerking.
virtual void OnStopBinding(HRESULT hresult, LPCTSTR szError);
Parameterwaarden
hresult-
Een HRESULT dat de fout- of waarschuwingswaarde is.
szErrort
Een tekenreeks die de fout beschrijft.
Opmerkingen
Overschrijf deze functie om acties uit te voeren wanneer de overdracht wordt gestopt. Standaard wordt de functie vrijgegeven IBinding.
Zie de Windows SDK voor een beschrijving van de IBinding interface.
CAsyncMonikerFile::Open
Roep deze lidfunctie aan om een bestand asynchroon te openen.
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);
Parameterwaarden
lpszURL
Een aanwijzer naar bestand dat asynchroon moet worden geopend. Het bestand kan elke geldige URL of bestandsnaam zijn.
pError
Een aanwijzer naar de bestandsonderzondering. In het geval van een fout wordt deze ingesteld op de oorzaak.
pMoniker
Een aanwijzer naar de asynchrone monikerinterface IMoniker, een nauwkeurige moniker die de combinatie is van de eigen moniker van het document, waarmee u kunt ophalen en IOleClientSite::GetMoniker(OLEWHICHMK_CONTAINER)een moniker die is gemaakt op basis van de padnaam. Het besturingselement kan deze moniker gebruiken om te binden, maar dit is niet de moniker die het besturingselement moet opslaan.
pBindHost
Een aanwijzer naar de IBindHost interface die wordt gebruikt om de moniker te maken op basis van een potentieel relatieve padnaam. Als de bindingshost ongeldig is of geen moniker biedt, wordt de aanroep standaard ingesteld op Open(lpszFileName,pError). Zie de Windows SDK voor een beschrijving van de IBindHost interface.
pServiceProvider
Een aanwijzer naar de IServiceProvider interface. Als de serviceprovider ongeldig is of de service IBindHostniet kan opgeven, wordt de aanroep standaard ingesteld Open(lpszFileName,pError)op .
pUnknown
Een aanwijzer naar de IUnknown interface. Als IServiceProvider deze wordt gevonden, worden de functiequery's voor IBindHost. Als de serviceprovider ongeldig is of de service IBindHostniet kan opgeven, wordt de aanroep standaard ingesteld Open(lpszFileName,pError)op .
Retourwaarde
Niet-nul als het bestand is geopend; anders 0.
Opmerkingen
Met deze aanroep wordt het bindingsproces gestart.
U kunt een URL of een bestandsnaam gebruiken voor de parameter lpszURL . Voorbeeld:
CMyMoniker *pMyMoniker = new CMyMoniker();
pMyMoniker->Open(_T("http://www.microsoft.com"));
- of -
CMyMoniker *pMyMoniker = new CMyMoniker();
pMyMoniker->Open(_T("file:c:\\mydata.dat"));
Zie ook
CMonikerFile-klasse
Hiërarchiegrafiek
CMonikerFile-klasse
CDataPathProperty-klasse