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
Veri Akışı Adı | Açıklama |
---|---|
CAsyncMonikerFile::CAsyncMonikerFile | Bir CAsyncMonikerFile nesne oluşturur. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
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
Veri Akışı Adı | Açıklama |
---|---|
CAsyncMonikerFile::CreateBindStatusCallback | uygulayan IBindStatusCallback bir 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
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 IBindStatusCallback
bir COM nesnesi oluşturur.
virtual IUnknown* CreateBindStatusCallback(IUnknown* pUnkControlling);
Parametreler
pUnkControlling
Toplama kullanılmıyorsa denetim bilinmeyeni (dış IUnknown
) veya NULL işaretçisi.
Dönüş Değeri
pUnkControlling NULL değilse, işlevi destekleyen IBindStatusCallback
yeni bir COM nesnesinde iç IUnknown
işaretçiyi döndürür. NULL isepUnkControlling
, işlevi destekleyen IBindStatusCallback
yeni bir COM nesnesinde bir IUnknown
işaretçi döndürür.
Açıklamalar
CAsyncMonikerFile
, uygulayan IBindStatusCallback
bir 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::GetControllingUnknown
denetim 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 Zaman Uyumsuz Bağlama ve Depolama Çalışma. 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;
Dönüş Değeri
için IBindStatusCallBack
ayarları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;
Dönüş 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::Pause
ve IBinding::Resume
ileIBinding::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;
Dönüş 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;
Dönüş 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:
Value | Açıklama |
---|---|
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 IMoniker
iş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 IBindHost
hizmeti sağlayamıyorsa, çağrı varsayılan olarak olur Open(lpszFileName,pError)
.
pUnknown
Arabirimin işaretçisi IUnknown
. bulunursa IServiceProvider
, işlevi için IBindHost
sorgular. Hizmet sağlayıcısı geçersizse veya için IBindHost
hizmeti sağlayamıyorsa, çağrı varsayılan olarak olur Open(lpszFileName,pError)
.
Dönüş 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. Örneğin:
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ı