Aracılığıyla paylaş


CAsyncMonikerFile Sınıfı

ActiveX denetimlerinde (eski adı OLE denetimleri) zaman uyumsuz takma adların kullanımına yönelik işlevsellik sağlar.

Sözdizimi

class CAsyncMonikerFile : public CMonikerFile

Üyeler

Ortak Oluşturucular

Ad Tanım
CAsyncMonikerFile::CAsyncMonikerFile Bir CAsyncMonikerFile nesne oluşturur.

Genel Yöntemler

Ad Tanım
CAsyncMonikerFile::Close Tüm kaynakları kapatır ve serbest bırakır.
CAsyncMonikerFile::GetBinding Zaman uyumsuz aktarım bağlamasına yönelik bir işaretçi alır.
CAsyncMonikerFile::GetFormatEtc Akıştaki verilerin biçimini alır.
CAsyncMonikerFile::Open Dosyayı zaman uyumsuz olarak açar.

Korumalı Yöntemler

Ad Tanım
CAsyncMonikerFile::CreateBindStatusCallback uygulayan IBindStatusCallbackbir COM nesnesi oluşturur.
CAsyncMonikerFile::GetBindInfo Oluşturulacak bağlama türü hakkında bilgi istemek için OLE sistem kitaplığı tarafından çağrılır.
CAsyncMonikerFile::GetPriority Bağlamanın önceliğini almak için OLE sistem kitaplığı tarafından çağrılır.
CAsyncMonikerFile::OnDataAvailable Zaman uyumsuz bağlama işlemleri sırasında istemcinin kullanımına sunulan verileri sağlamak için çağrılır.
CAsyncMonikerFile::OnLowResource Kaynaklar düşük olduğunda çağrılır.
CAsyncMonikerFile::OnProgress Veri indirme işlemindeki ilerleme durumunu belirtmek için çağrılır.
CAsyncMonikerFile::OnStartBinding Bağlama başlatılırken çağrılır.
CAsyncMonikerFile::OnStopBinding Zaman uyumsuz aktarım durdurulduğunda çağrılır.

Açıklamalar

CMonikerFile'dan türetilen ve COleStreamFile'danCAsyncMonikerFile türetilen, dosyaları bir URL'den zaman uyumsuz olarak yükleme de dahil olmak üzere zaman uyumsuz olarak tüm veri akışlarına erişmek için IMoniker arabirimini kullanır. Dosyalar, ActiveX denetimlerinin veri yolu özellikleri olabilir.

Zaman uyumsuz takma adlar, dosya aktarımları sırasında duyarlı bir kullanıcı arabirimi sağlamak için öncelikli olarak İnternet özellikli uygulamalarda ve ActiveX denetimlerinde kullanılır. Bunun en önemli örneklerinden biri, ActiveX denetimleri için zaman uyumsuz özellikler sağlamak üzere CDataPathProperty kullanılmasıdır. Nesne, CDataPathProperty uzun bir özellik değişim işlemi sırasında yeni verilerin kullanılabilirliğini göstermek için sürekli olarak bir geri çağırma alır.

İnternet uygulamalarında zaman uyumsuz takma adlarının ve ActiveX denetimlerinin nasıl kullanılacağı hakkında daha fazla bilgi için aşağıdaki makalelere bakın:

Devralma Hiyerarşisi

Cobject

Cfile

COleStreamFile

CMonikerFile

CAsyncMonikerFile

Gereksinimler

Üst bilgi: afxole.h

CAsyncMonikerFile::CAsyncMonikerFile

Bir CAsyncMonikerFile nesne oluşturur.

CAsyncMonikerFile();

Açıklamalar

Arabirimi oluşturmaz IBindHost . IBindHost yalnızca üye işlevinde Open sağladığınızda kullanılır.

Arabirimin IBindHost açıklaması için bkz. Windows SDK'sı.

CAsyncMonikerFile::Close

Tüm kaynakları kapatmak ve serbest bırakmak için bu işlevi çağır.

virtual void Close();

Açıklamalar

Açılmamış veya zaten kapatılmış dosyalarda çağrılabilir.

CAsyncMonikerFile::CreateBindStatusCallback

uygulayan IBindStatusCallbackbir COM nesnesi oluşturur.

virtual IUnknown* CreateBindStatusCallback(IUnknown* pUnkControlling);

Parametreler

pUnkControlling
Toplama kullanılmıyorsa denetim bilinmeyeni (dış IUnknown) veya NULL işaretçisi.

İade Değeri

pUnkControlling NULL değilse, işlevi destekleyen IBindStatusCallbackyeni bir COM nesnesinde iç IUnknown işaretçiyi döndürür. NULL isepUnkControlling, işlevi destekleyen IBindStatusCallbackyeni bir COM nesnesinde bir IUnknown işaretçi döndürür.

Açıklamalar

CAsyncMonikerFile , uygulayan IBindStatusCallbackbir COM nesnesi gerektirir. MFC böyle bir nesne uygular ve toplayıcıdır. Kendi COM nesnenizi döndürmek için geçersiz kılabilirsiniz CreateBindStatusCallback . COM nesneniz, COM nesnenizin denetim bilinmeyeni ile çağırarak CreateBindStatusCallback MFC'nin uygulamasını toplayabilir. COM desteği kullanılarak CCmdTarget uygulanan COM nesneleri, kullanarak CCmdTarget::GetControllingUnknowndenetim bilinmeyenini alabilir.

Alternatif olarak, COM nesneniz çağırarak CreateBindStatusCallback( NULL )MFC'nin uygulamasına temsilci atayabilir.

CAsyncMonikerFile::Open çağrıları CreateBindStatusCallback.

Zaman uyumsuz takma adlar ve zaman uyumsuz bağlama hakkında daha fazla bilgi için bkz. IBindStatusCallback arabirimi ve How Asynchronous Binding and Depolama Work. Toplamayla ilgili bir tartışma için bkz . Toplama. Üç konu da Windows SDK'sında yer alır.

CAsyncMonikerFile::GetBindInfo

Zaman uyumsuz takma adına nasıl bağlanmak istediğini söylemek için zaman uyumsuz bir takma adın istemcisinden çağrılır.

virtual DWORD GetBindInfo() const;

İade Değeri

için IBindStatusCallBackayarlarını alır. Arabirimin IBindStatusCallback açıklaması için bkz. Windows SDK'sı.

Açıklamalar

Varsayılan uygulama, bağlamayı zaman uyumsuz, depolama ortamı (akış) ve veri gönderme modelini kullanacak şekilde ayarlar. Bağlamanın davranışını değiştirmek istiyorsanız bu işlevi geçersiz kılın.

Bunu yapmanın bir nedeni, veri gönderme modeli yerine veri çekme modelini kullanarak bağlanmaktır. Veri çekme modelinde istemci bağlama işlemini yönetir ve takma ad yalnızca okunduğunda istemciye veri sağlar. Veri gönderme modelinde, ad zaman uyumsuz bağlama işlemini yönetir ve yeni veriler kullanılabilir olduğunda istemciye sürekli olarak bildirimde bulunur.

CAsyncMonikerFile::GetBinding

Zaman uyumsuz aktarım bağlamasına bir işaretçi almak için bu işlevi çağırın.

IBinding* GetBinding() const;

İade Değeri

Zaman uyumsuz aktarım başladığında sağlanan arabirim işaretçisi IBinding . Herhangi bir nedenle aktarım zaman uyumsuz olarak yapılamıyorsa NULL döndürür.

Açıklamalar

Bu, arabirim aracılığıyla IBinding veri aktarımı işlemini denetlemenize olanak tanır; örneğin, , IBinding::Pauseve IBinding::ResumeileIBinding::Abort.

Arabirimin IBinding açıklaması için bkz. Windows SDK'sı.

CAsyncMonikerFile::GetFormatEtc

Akıştaki verilerin biçimini almak için bu işlevi çağırın.

FORMATETC* GetFormatEtc() const;

İade Değeri

Şu anda açık olan akış için Windows yapısı FORMATETC işaretçisi. Takma ad bağlı değilse, zaman uyumsuz değilse veya zaman uyumsuz işlem başlatılmadıysa NULL döndürür.

CAsyncMonikerFile::GetPriority

Bağlama işlemi, bağlama işlemi için iş parçacığına verilen önceliği almaya başladığından, zaman uyumsuz bir takma adın istemcisinden çağrılır.

virtual LONG GetPriority() const;

İade Değeri

Zaman uyumsuz aktarımın gerçekleşeceği öncelik. Standart iş parçacığı öncelik bayraklarından biri: THREAD_PRIORITY_ABOVE_NORMAL, THREAD_PRIORITY_BELOW_NORMAL, THREAD_PRIORITY_HIGHEST, THREAD_PRIORITY_IDLE, THREAD_PRIORITY_LOWEST, THREAD_PRIORITY_NORMAL ve THREAD_PRIORITY_TIME_CRITICAL. Bu değerlerin açıklaması için SetThreadPriority Windows işlevine bakın.

Açıklamalar

GetPriority doğrudan çağrılmamalıdır. THREAD_PRIORITY_NORMAL varsayılan uygulama tarafından döndürülür.

CAsyncMonikerFile::OnDataAvailable

Zaman uyumsuz bağlama işlemleri sırasında, kullanılabilir olduğunda istemciye veri sağlamak için zaman uyumsuz bir takma ad çağrıları OnDataAvailable .

virtual void OnDataAvailable(DWORD dwSize, DWORD bscfFlag);

Parametreler

dwSize
Bağlamanın başlangıcından bu yana kullanılabilir verilerin birikmeli miktarı (bayt cinsinden). Veri miktarının işlemle ilgili olmadığını veya belirli bir miktarın kullanılabilir olmadığını belirten sıfır olabilir.

bscfFlag
BSCF numaralandırma değeri. Aşağıdaki değerlerden biri veya daha fazlası olabilir:

  • BSCF_FIRSTDATANOTIFICATION Belirli bir bağlama işlemi için ilk çağrıyı OnDataAvailable tanımlar.

  • BSCF_INTERMEDIATEDATANOTIFICATION Bağlama işlemi için aracı OnDataAvailable çağrısı tanımlar.

  • BSCF_LASTDATANOTIFICATION Bağlama işlemi için son çağrıyı OnDataAvailable tanımlar.

Açıklamalar

Bu işlevin varsayılan uygulaması hiçbir şey yapmaz. Örnek uygulama için aşağıdaki örneğe bakın.

Örnek

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

Kaynaklar düşük olduğunda takma ad tarafından çağrılır.

virtual void OnLowResource();

Açıklamalar

Varsayılan uygulama öğesini çağırır GetBinding( )-> Abort( ).

CAsyncMonikerFile::OnProgress

Bu bağlama işleminin geçerli ilerleme durumunu belirtmek için, genellikle uzun bir işlem sırasında makul aralıklarla, takma ad tarafından tekrar tekrar çağrılır.

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

Parametreler

ulProgress
UlProgressMax'ta belirtilen beklenen üst sınıra göre bağlama işleminin geçerli ilerleme durumunu gösterir.

ulProgressMax
Bu işlem için çağrıların OnProgress süresi boyunca beklenen en yüksek ulProgress değerini gösterir.

ulStatusCode
Bağlama işleminin ilerleme durumuyla ilgili ek bilgiler sağlar. Geçerli değerler numaralandırmadan BINDSTATUS alınır. Olası değerler için açıklamalar bölümüne bakın.

szStatusText
ulStatusCode değerine bağlı olarak geçerli ilerleme durumu hakkında bilgi. Olası değerler için açıklamalar bölümüne bakın.

Açıklamalar

ulStatusCode (ve her değer için szStatusText) için olası değerler şunlardır:

Değer Tanım
BINDSTATUS_FINDINGRESOURCE Bağlama işlemi, nesnenin veya depolamanın bağlı olduğu kaynağı bulmaktır. szStatusText, aranmakta olan kaynağın görünen adını sağlar (örneğin, "www.microsoft.com").
BINDSTATUS_CONNECTING Bağlama işlemi, bağlı olan nesneyi veya depolamayı barındıran kaynağa bağlanıyor. szStatusText, bağlanılan kaynağın görünen adını (örneğin, bir IP adresi) sağlar.
BINDSTATUS_SENDINGREQUEST Bağlama işlemi, bağlı olan nesneyi veya depolamayı ister. szStatusText, nesnenin görünen adını (örneğin, bir dosya adı) sağlar.
BINDSTATUS_REDIRECTING Bağlama işlemi farklı bir veri konumuna yeniden yönlendirildi. szStatusText, yeni veri konumunun görünen adını sağlar.
BINDSTATUS_USINGCACHEDCOPY Bağlama işlemi, istenen nesneyi veya depolama alanını önbelleğe alınmış bir kopyadan alır. szStatusText NULL değeridir.
BINDSTATUS_BEGINDOWNLOADDATA Bağlama işlemi, bağlı olan nesneyi veya depolamayı almaya başladı. szStatusText, veri konumunun görünen adını sağlar.
BINDSTATUS_DOWNLOADINGDATA Bağlama işlemi, bağlı olan nesneyi veya depolamayı almaya devam eder. szStatusText, veri konumunun görünen adını sağlar.
BINDSTATUS_ENDDOWNLOADDATA Bağlama işlemi, bağlı olan nesneyi veya depolamayı almayı tamamladı. szStatusText, veri konumunun görünen adını sağlar.
BINDSTATUS_CLASSIDAVAILABLE Bağlanılmakta olan nesnenin bir örneği hemen oluşturulmak üzere. szStatusText, yeni nesnenin CLSID'sini dize biçiminde sağlayarak istemciye, isterseniz bağlama işlemini iptal etme fırsatı verir.

CAsyncMonikerFile::OnStartBinding

Bağlama başlatılırken eylem gerçekleştirmek için türetilmiş sınıflarınızda bu işlevi geçersiz kılın.

virtual void OnStartBinding();

Açıklamalar

Bu işlev, takma ad tarafından geri çağrılır. Varsayılan uygulama hiçbir şey yapmaz.

CAsyncMonikerFile::OnStopBinding

Bağlama işleminin sonundaki takma ad tarafından çağrılır.

virtual void OnStopBinding(HRESULT hresult, LPCTSTR szError);

Parametreler

Hresult
Hata veya uyarı değeri olan bir HRESULT.

szErrort
Hatayı açıklayan bir karakter dizesi.

Açıklamalar

Aktarım durdurulduğunda eylem gerçekleştirmek için bu işlevi geçersiz kılın. varsayılan olarak, işlevi yayınlar IBinding.

Arabirimin IBinding açıklaması için bkz. Windows SDK'sı.

CAsyncMonikerFile::Open

Dosyayı zaman uyumsuz olarak açmak için bu üye işlevini çağır.

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);

Parametreler

Lpszurl
Zaman uyumsuz olarak açılacak dosya işaretçisi. Dosya herhangi bir geçerli URL veya dosya adı olabilir.

pError
Dosya özel durumlarına yönelik bir işaretçi. Hata durumunda, neden olarak ayarlanır.

pMoniker
Zaman uyumsuz takma ad arabiriminin IMonikerişaretçisi, belgenin kendi takma adının birleşimi olan ve ile IOleClientSite::GetMoniker(OLEWHICHMK_CONTAINER)alabildiğiniz kesin bir takma ad ve yol adından oluşturulmuş bir takma ad. Denetim bağlamak için bu takma adı kullanabilir, ancak bu, denetimin kaydetmesi gereken ad değildir.

pBindHost
Göreli olabilecek bir yol adından takma ad oluşturmak için kullanılacak arabirim işaretçisi IBindHost . Bağlama konağı geçersizse veya bir takma ad sağlamıyorsa, çağrı varsayılan olarak olur Open(lpszFileName,pError). Arabirimin IBindHost açıklaması için bkz. Windows SDK'sı.

pServiceProvider
Arabirimin işaretçisi IServiceProvider . Hizmet sağlayıcısı geçersizse veya için IBindHosthizmeti sağlayamıyorsa, çağrı varsayılan olarak olur Open(lpszFileName,pError).

pUnknown
Arabirimin işaretçisi IUnknown . bulunursa IServiceProvider , işlevi için IBindHostsorgular. Hizmet sağlayıcısı geçersizse veya için IBindHosthizmeti sağlayamıyorsa, çağrı varsayılan olarak olur Open(lpszFileName,pError).

İade Değeri

Dosya başarıyla açılırsa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Bu çağrı bağlama işlemini başlatır.

lpszURL parametresi için URL veya dosya adı kullanabilirsiniz. Örnek:

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

- veya -

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

Ayrıca bkz.

CMonikerFile Sınıfı
Hiyerarşi Grafiği
CMonikerFile Sınıfı
CDataPathProperty Sınıfı