COleServerDoc Sınıfı
OLE sunucusu belgeleri için temel sınıf.
Sözdizimi
class AFX_NOVTABLE COleServerDoc : public COleLinkingDoc
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
COleServerDoc::COleServerDoc | Bir COleServerDoc nesne oluşturur. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
COleServerDoc::ActivateDocObject | İlişkili DocObject belgesini etkinleştirir. |
COleServerDoc::ActivateInPlace | Belgeyi yerinde düzenleme için etkinleştirir. |
COleServerDoc::D eactivateAndUndo | Sunucunun kullanıcı arabirimini devre dışı bırakır. |
COleServerDoc::D iscardUndoState | Geri alma durumu bilgilerini atar. |
COleServerDoc::GetClientSite | Temel alınan IOleClientSite arabirimin işaretçisini alır. |
COleServerDoc::GetEmbeddedItem | Belgenin tamamını temsil eden bir öğenin işaretçisini döndürür. |
COleServerDoc::GetItemClipRect | Yerinde düzenleme için geçerli kırpma dikdörtgenini döndürür. |
COleServerDoc::GetItemPosition | Yerinde düzenleme için kapsayıcı uygulamasının istemci alanına göre geçerli konum dikdörtgenini döndürür. |
COleServerDoc::GetZoomFactor | Piksel cinsinden yakınlaştırma faktörünü döndürür. |
COleServerDoc::IsDocObject | Belgenin bir DocObject olup olmadığını belirler. |
COleServerDoc::IsEmbedded | Belgenin bir kapsayıcı belgesine eklenip ekli olmadığını veya tek başına çalıştırılıp çalıştırılmadığını gösterir. |
COleServerDoc::IsInPlaceActive | Öğe şu anda etkin durumdaysa TRUE döndürür. |
COleServerDoc::NotifyChanged | Kapsayıcılara kullanıcının belgeyi değiştirdiğini bildirir. |
COleServerDoc::NotifyClosed | Kullanıcının belgeyi kapattığını kapsayıcılara bildirir. |
COleServerDoc::NotifyRename | Kullanıcının belgeyi yeniden adlandırdığını kapsayıcılara bildirir. |
COleServerDoc::NotifySaved | Kullanıcının belgeyi kaydettiğini kapsayıcılara bildirir. |
COleServerDoc::OnDeactivate | Kullanıcı yerinde etkinleştirilen bir öğeyi devre dışı bıraktığında çerçeve tarafından çağrılır. |
COleServerDoc::OnDeactivateUI | Denetimler ve yerinde etkinleştirme için oluşturulan diğer kullanıcı arabirimi öğelerini yok etmek için çerçeve tarafından çağrılır. |
COleServerDoc::OnDocWindowActivate | Kapsayıcının belge çerçevesi penceresi etkinleştirildiğinde veya devre dışı bırakıldığında çerçeve tarafından çağrılır. |
COleServerDoc::OnResizeBorder | Kapsayıcı uygulamasının çerçeve penceresi veya belge penceresi yeniden boyutlandırıldığında çerçeve tarafından çağrılır. |
COleServerDoc::OnShowControlBars | Yerinde düzenleme için denetim çubuklarını göstermek veya gizlemek için çerçeve tarafından çağrılır. |
COleServerDoc::OnUpdateDocument | Katıştırılmış öğe olan bir sunucu belgesi kaydedildiğinde, kapsayıcının öğenin kopyasını güncelleştirerek çerçeve tarafından çağrılır. |
COleServerDoc::RequestPositionChange | Yerinde düzenleme çerçevesinin konumunu değiştirir. |
COleServerDoc::SaveEmbedding | Kapsayıcı uygulamasına belgeyi kaydetmesini söyler. |
COleServerDoc::ScrollContainerBy | Kapsayıcı belgesini kaydırır. |
COleServerDoc::UpdateAllItems | Kapsayıcılara kullanıcının belgeyi değiştirdiğini bildirir. |
Korumalı Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
COleServerDoc::CreateInPlaceFrame | Yerinde düzenleme için çerçeve penceresi oluşturmak üzere çerçeve tarafından çağrılır. |
COleServerDoc::D estroyInPlaceFrame | Yerinde düzenleme için çerçeve penceresini yok etmek için çerçeve tarafından çağrılır. |
COleServerDoc::GetDocObjectServer | Yeni CDocObjectServer bir nesne oluşturmak ve bu belgenin bir DocObject kapsayıcısı olduğunu belirtmek için bu işlevi geçersiz kılın. |
COleServerDoc::OnClose | Kapsayıcı belgeyi kapatmak istediğinde çerçeve tarafından çağrılır. |
COleServerDoc::OnExecOleCmd | Belirtilen bir komutu yürütür veya komutun yardımını görüntüler. |
COleServerDoc::OnFrameWindowActivate | Kapsayıcının çerçeve penceresi etkinleştirildiğinde veya devre dışı bırakıldığında çerçeve tarafından çağrılır. |
COleServerDoc::OnGetEmbeddedItem | Belgenin tamamını temsil eden bir COleServerItem almak için çağrılır; katıştırılmış bir öğeyi almak için kullanılır. Uygulama gerekli. |
COleServerDoc::OnReactivateAndUndo | Yerinde düzenleme sırasında yapılan değişiklikleri geri almak için çerçeve tarafından çağrılır. |
COleServerDoc::OnSetHostNames | Kapsayıcı katıştırılmış bir nesne için pencere başlığını ayarladığında çerçeve tarafından çağrılır. |
COleServerDoc::OnSetItemRects | Kapsayıcı uygulamasının penceresi içinde yerinde düzenleme çerçevesi penceresini konumlandırmak için çerçeve tarafından çağrılır. |
COleServerDoc::OnShowDocument | Belgeyi göstermek veya gizlemek için çerçeve tarafından çağrılır. |
Açıklamalar
Sunucu belgesi, katıştırılmış veya bağlı öğelere sunucu arabirimini temsil eden COleServerItem nesneleri içerebilir. Katıştırılmış bir öğeyi düzenlemek için bir kapsayıcı tarafından bir sunucu uygulaması başlatıldığında, öğe kendi sunucu belgesi olarak yüklenir; nesnesi, belgenin COleServerDoc
tamamını içeren tek bir COleServerItem
nesne içerir. Bir sunucu uygulaması bağlantılı öğeyi düzenlemek için bir kapsayıcı tarafından başlatıldığında, var olan bir belge diskten yüklenir; bağlantılı öğeyi göstermek için belge içeriğinin bir bölümü vurgulanır.
COleServerDoc
nesneleri COleClientItem sınıfının öğelerini de içerebilir. Bu, kapsayıcı sunucu uygulamaları oluşturmanıza olanak tanır. Çerçeve, nesnelere hizmet verirken öğeleri düzgün bir şekilde depolamak COleClientItem
COleServerItem
için işlevler sağlar.
Sunucu uygulamanız bağlantıları desteklemiyorsa, bir sunucu belgesinde her zaman yalnızca bir sunucu öğesi bulunur ve bu öğe katıştırılmış nesnenin tamamını belge olarak temsil eder. Sunucu uygulamanız bağlantıları destekliyorsa, seçim Pano'ya her kopyalandığında bir sunucu öğesi oluşturmalıdır.
kullanmak COleServerDoc
için, öğesinden bir sınıf türetin ve sunucunuzun katıştırılmış öğeleri desteklemesini sağlayan OnGetEmbeddedItem üye işlevini uygulayın. Belgelerinizdeki öğeleri uygulamak ve bu sınıfın COleServerItem
nesnelerini öğesinden döndürmek için öğesinden OnGetEmbeddedItem
bir sınıf türetin.
Bağlantılı öğeleri COleServerDoc
desteklemek için OnGetLinkedItem üye işlevini sağlar. Belge öğelerini yönetmek için kendi yönteminiz varsa, varsayılan uygulamayı kullanabilir veya geçersiz kılabilirsiniz.
Uygulamanızın desteklediği her sunucu belgesi türü için bir COleServerDoc
türetilmiş sınıf gerekir. Örneğin, sunucu uygulamanız çalışma sayfalarını ve grafikleri destekliyorsa, türetilmiş iki COleServerDoc
sınıfa ihtiyacınız vardır.
Sunucular hakkında daha fazla bilgi için Sunucular: Sunucu Uygulama makalesine bakın.
Devralma Hiyerarşisi
COleServerDoc
Gereksinimler
Üst bilgi: afxole.h
COleServerDoc::ActivateDocObject
İlişkili DocObject belgesini etkinleştirir.
void ActivateDocObject();
Açıklamalar
Varsayılan olarak, COleServerDoc
Etkin belgeleri (DocObjects olarak da adlandırılır) desteklemez. Bu desteği etkinleştirmek için bkz. GetDocObjectServer ve CDocObjectServer sınıfı.
COleServerDoc::ActivateInPlace
Öğeyi yerinde düzenleme için etkinleştirir.
BOOL ActivateInPlace();
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde, öğenin tamamen açık olduğunu belirten 0.
Açıklamalar
Bu işlev yerinde etkinleştirme için gereken tüm işlemleri gerçekleştirir. Bir yerinde çerçeve penceresi oluşturur, etkinleştirir ve öğeye boyutlandırılır, paylaşılan menüleri ve diğer denetimleri ayarlar, öğeyi görünüme kaydırıp odağı yerinde çerçeve penceresine ayarlar.
Bu işlev, varsayılan COleServerItem::OnShow uygulaması tarafından çağrılır. Uygulamanız yerinde etkinleştirme için başka bir fiili destekliyorsa (Oynat gibi) bu işlevi çağır.
COleServerDoc::COleServerDoc
OLE sistemi DLL'lerine bağlanmadan bir COleServerDoc
nesne oluşturur.
COleServerDoc();
Açıklamalar
OLE ile iletişimleri açmak için COleLinkingDoc::Register'ı çağırmalısınız. Uygulamanızda COleTemplateServer kullanıyorsanız , OnOpenDocument
COleLinkingDoc::Register
ve OnSaveDocument
uygulaması tarafından COleLinkingDoc
sizin için çağrılırOnNewDocument
.
COleServerDoc::CreateInPlaceFrame
Çerçeve, yerinde düzenleme için bir çerçeve penceresi oluşturmak üzere bu işlevi çağırır.
virtual COleIPFrameWnd* CreateInPlaceFrame(CWnd* pParentWnd);
Parametreler
pParentWnd
Kapsayıcı uygulamasının üst penceresinin işaretçisi.
Dönüş Değeri
Yerinde çerçeve penceresinin işaretçisi veya başarısız olursa NULL.
Açıklamalar
Varsayılan uygulama, çerçeveyi oluşturmak için belge şablonunda belirtilen bilgileri kullanır. Kullanılan görünüm, belge için oluşturulan ilk görünümdür. Bu görünüm, özgün çerçeveden geçici olarak ayrılır ve yeni oluşturulan çerçeveye eklenir.
Bu, gelişmiş bir geçersiz kılınabilir.
COleServerDoc::D eactivateAndUndo
Uygulamanız Geri Al'ı destekliyorsa ve kullanıcı öğeyi etkinleştirdikten sonra ancak düzenlemeden önce Geri Al'ı seçerse bu işlevi çağırın.
BOOL DeactivateAndUndo();
Dönüş Değeri
Başarıda sıfır olmayan; aksi takdirde 0.
Açıklamalar
Kapsayıcı uygulaması Microsoft Foundation Sınıf Kitaplığı kullanılarak yazılmışsa, bu işlevin çağrılması COleClientItem::OnDeactivateAndUndo çağrısı yapılmasına neden olur ve bu da sunucunun kullanıcı arabirimini devre dışı bırakır.
COleServerDoc::D estroyInPlaceFrame
Çerçeve, yerinde bir çerçeve penceresini yok etmek ve sunucu uygulamasının belge penceresini yerinde etkinleştirmeden önce durumuna döndürmek için bu işlevi çağırır.
virtual void DestroyInPlaceFrame(COleIPFrameWnd* pFrameWnd);
Parametreler
pFrameWnd
Yok edilecek yerinde çerçeve penceresinin işaretçisi.
Açıklamalar
Bu, gelişmiş bir geçersiz kılınabilir.
COleServerDoc::D iscardUndoState
Kullanıcı geri alınamayan bir düzenleme işlemi gerçekleştirirse, kapsayıcı uygulamasını geri alma durumu bilgilerini atmaya zorlamak için bu işlevi çağırın.
BOOL DiscardUndoState();
Dönüş Değeri
Başarıda sıfır olmayan; aksi takdirde 0.
Açıklamalar
Bu işlev, Geri Al'ın desteklendiği sunucuların, aksi takdirde kullanılamayabilecek geri alma durumu bilgileri tarafından tüketilecek kaynakları boşaltması için sağlanır.
COleServerDoc::GetClientSite
Temel alınan IOleClientSite
arabirimin işaretçisini alır.
LPOLECLIENTSITE GetClientSite() const;
Dönüş Değeri
Temel alınan IOleClientSite arabirimine yönelik bir işaretçi alır.
COleServerDoc::GetDocObjectServer
Yeni CDocObjectServer
bir öğe oluşturmak ve buna bir işaretçi döndürmek için bu işlevi geçersiz kılın.
virtual CDocObjectServer* GetDocObjectServer(LPOLEDOCUMENTSITE pDocSite);
Parametreler
pDocSite
Bu belgeyi sunucuya IOleDocumentSite
bağlayacak arabirimin işaretçisi.
Dönüş Değeri
bir işaretçisi CDocObjectServer
; İşlem başarısız olursa NULL.
Açıklamalar
Bir DocObject sunucusu etkinleştirildiğinde, NULL olmayan bir işaretçinin döndürülmesi, istemcinin DocObjects'i destekleyebileceğinizi gösterir. Varsayılan uygulama NULL döndürür.
DocObjects'i destekleyen bir belge için tipik bir uygulama, yeni CDocObjectServer
bir nesne ayırıp çağırana döndürür. Örneğin:
CDocObjectServer* CMFCOleServerDoc::GetDocObjectServer(LPOLEDOCUMENTSITE pSite)
{
return new CDocObjectServer(this, pSite);
}
COleServerDoc::GetEmbeddedItem
Belgenin tamamını temsil eden bir öğeye işaretçi almak için bu işlevi çağırın.
COleServerItem* GetEmbeddedItem();
Dönüş Değeri
Belgenin tamamını temsil eden bir öğenin işaretçisi; İşlem başarısız olursa NULL.
Açıklamalar
Varsayılan uygulaması olmayan bir sanal işlev olan COleServerDoc::OnGetEmbeddedItem'i çağırır.
COleServerDoc::GetItemClipRect
Düzenlenmekte olan GetItemClipRect
öğenin kırpma-dikdörtgen koordinatlarını almak için üye işlevini çağırın.
void GetItemClipRect(LPRECT lpClipRect) const;
Parametreler
lpClipRect
Öğenin kırpma dikdörtgen koordinatlarını almak için bir RECT
CRect
yapıya veya nesneye yönelik işaretçi.
Açıklamalar
Koordinatlar, kapsayıcı uygulama penceresinin istemci alanına göre piksel cinsindendir.
Çizim, kırpma dikdörtgeninin dışında olmamalıdır. Genellikle çizim otomatik olarak kısıtlanır. Kullanıcının belgenin görünür bölümünün dışına kayıp kaydırmadığını belirlemek için bu işlevi kullanın; bu durumda, ScrollContainerBy çağrısıyla kapsayıcı belgesini gerektiği gibi kaydırın.
COleServerDoc::GetItemPosition
GetItemPosition
Düzenlenen öğenin koordinatlarını almak için üye işlevini çağırın.
void GetItemPosition(LPRECT lpPosRect) const;
Parametreler
lpPosRect
Öğenin koordinatlarını almak için bir RECT
CRect
yapıya veya nesneye yönelik işaretçi.
Açıklamalar
Koordinatlar, kapsayıcı uygulama penceresinin istemci alanına göre piksel cinsindendir.
Öğenin konumu, öğenin ekranda ne ölçüde görünür (veya görünür değil) olduğunu belirlemek için geçerli kırpma dikdörtgeniyle karşılaştırılabilir.
COleServerDoc::GetZoomFactor
GetZoomFactor
Üye işlevi, yerinde düzenleme için etkinleştirilmiş bir öğenin "yakınlaştırma faktörünü" belirler.
BOOL GetZoomFactor(
LPSIZE lpSizeNum = NULL,
LPSIZE lpSizeDenom = NULL,
LPCRECT lpPosRect = NULL) const;
Parametreler
lpSizeNum
Yakınlaştırma faktörünün payını tutacak bir sınıf CSize
nesnesinin işaretçisi. NULL olabilir.
lpSizeDenom
Yakınlaştırma faktörünün paydasını tutacak bir sınıf CSize
nesnesinin işaretçisi. NULL olabilir.
lpPosRect
Öğenin yeni konumunu açıklayan bir sınıf CRect
nesnesi işaretçisi. Bu bağımsız değişken NULL ise işlev öğenin geçerli konumunu kullanır.
Dönüş Değeri
Öğe yerinde düzenleme için etkinleştirildiyse ve yakınlaştırma faktörü %100'den farklıysa sıfır olmayan (1:1); aksi takdirde 0.
Açıklamalar
Piksel cinsinden yakınlaştırma faktörü, öğenin boyutunun geçerli kapsamına oranıdır. Kapsayıcı uygulaması öğenin kapsamını ayarlamadıysa, doğal kapsamı (COleServerItem::OnGetExtent tarafından belirlendiği gibi) kullanılır.
İşlev, ilk iki bağımsız değişkenini öğenin "yakınlaştırma faktörü" paydasına ve paydasına ayarlar. Öğe yerinde düzenlenmiyorsa, işlev bu bağımsız değişkenleri varsayılan %100 (veya 1:1) değerine ayarlar ve sıfır döndürür. Daha fazla bilgi için bkz. Teknik Not 40, MFC/OLE Yerinde Yeniden Boyutlandırma ve Yakınlaştırma.
COleServerDoc::IsDocObject
Belgenin bir DocObject olup olmadığını belirler.
BOOL IsDocObject() const;
Dönüş Değeri
Belge bir DocObject ise TRUE; aksi takdirde YANLIŞ.
COleServerDoc::IsEmbedded
Belgenin kapsayıcıya IsEmbedded
katıştırılmış bir nesneyi temsil edip etmediğini belirlemek için üye işlevini çağırın.
BOOL IsEmbedded() const;
Dönüş Değeri
Nesne bir kapsayıcıya COleServerDoc
katıştırılmış bir nesneyi temsil eden bir belgeyse sıfır olmayan; aksi takdirde 0.
Açıklamalar
Bir dosyadan yüklenen bir belge, bir kapsayıcı uygulaması tarafından bağlantı olarak değiştirilebilir ancak eklenmez. Kapsayıcı belgesine eklenmiş bir belge, eklenmiş olarak kabul edilir.
COleServerDoc::IsInPlaceActive
IsInPlaceActive
Öğenin şu anda yerinde etkin durumda olup olmadığını belirlemek için üye işlevini çağırın.
BOOL IsInPlaceActive() const;
Dönüş Değeri
Nesne etkinse COleServerDoc
sıfır olmayan; aksi takdirde 0.
COleServerDoc::NotifyChanged
Belgeye bağlı tüm bağlı öğeleri belgenin değiştiğini bildirmek için bu işlevi çağırın.
void NotifyChanged();
Açıklamalar
Genellikle, kullanıcı sunucu belgesinin boyutları gibi bazı genel öznitelikleri değiştirdikten sonra bu işlevi çağırırsınız. Bir OLE öğesi belgeye otomatik bağlantıyla bağlıysa, öğe değişiklikleri yansıtacak şekilde güncelleştirilir. Microsoft Foundation Sınıf Kitaplığı ile yazılan kapsayıcı uygulamalarında OnChange üye işlevi çağrılırCOleClientItem
.
Not
Bu işlev OLE 1 ile uyumluluk için eklenmiştir. Yeni uygulamalar UpdateAllItems kullanmalıdır.
COleServerDoc::NotifyClosed
Kapsayıcılara belgenin kapatıldığını bildirmek için bu işlevi çağırın.
void NotifyClosed();
Açıklamalar
Kullanıcı Dosya menüsünden Kapat komutunu seçtiğinde, NotifyClosed
OnCloseDocument üye işlevinin uygulaması tarafından COleServerDoc
çağrılır. Microsoft Foundation Sınıf Kitaplığı ile yazılan kapsayıcı uygulamalarında OnChange üye işlevi çağrılırCOleClientItem
.
COleServerDoc::NotifyRename
Kullanıcı sunucu belgesini yeniden adlandırdıktan sonra bu işlevi çağırın.
void NotifyRename(LPCTSTR lpszNewName);
Parametreler
lpszNewName
Sunucu belgesinin yeni adını belirten bir dize işaretçisi; bu genellikle tam yoldur.
Açıklamalar
Kullanıcı Dosya menüsünden Farklı Kaydet komutunu seçtiğinde, NotifyRename
OnSaveDocument üye işlevinin uygulaması tarafından COleServerDoc
çağrılır. Bu işlev, OLE sistemi DLL'lerini bilgilendirir ve kapsayıcılara bildirir. Microsoft Foundation Sınıf Kitaplığı ile yazılan kapsayıcı uygulamalarında OnChange üye işlevi çağrılırCOleClientItem
.
COleServerDoc::NotifySaved
Kullanıcı sunucu belgesini kaydettikten sonra bu işlevi çağırın.
void NotifySaved();
Açıklamalar
Kullanıcı Dosya menüsünden Kaydet komutunu seçtiğinde, NotifySaved
OnSaveDocument uygulaması tarafından COleServerDoc
sizin için çağrılır. Bu işlev, OLE sistemi DLL'lerini bilgilendirir ve kapsayıcılara bildirir. Microsoft Foundation Sınıf Kitaplığı ile yazılan kapsayıcı uygulamalarında OnChange üye işlevi çağrılırCOleClientItem
.
COleServerDoc::OnClose
Bir kapsayıcı sunucu belgesinin kapatılmasını istediğinde çerçeve tarafından çağrılır.
virtual void OnClose(OLECLOSE dwCloseOption);
Parametreler
dwCloseOption
OleCLOSE numaralandırmasından bir değer. Bu parametre aşağıdaki değerlerden birine sahip olabilir:
OLECLOSE_SAVEIFDIRTY Dosya değiştirilmişse kaydedilir.
OLECLOSE_NOSAVE Dosya kaydedilmeden kapatılır.
OLECLOSE_PROMPTSAVE Dosya değiştirildiyse, kullanıcıdan dosyayı kaydetmesi istenir.
Açıklamalar
Varsayılan uygulama öğesini çağırır CDocument::OnCloseDocument
.
Daha fazla bilgi ve ek değerler için bkz . Windows SDK'sında OLECLOSE .
COleServerDoc::OnDeactivate
Kullanıcı şu anda yerinde etkin olan eklenmiş veya bağlı bir öğeyi devre dışı bıraktığında çerçeve tarafından çağrılır.
virtual void OnDeactivate();
Açıklamalar
Bu işlev, kapsayıcı uygulamasının kullanıcı arabirimini özgün durumuna geri yükler ve yerinde etkinleştirme için oluşturulan menüleri ve diğer denetimleri yok eder.
Geri alma durumu bilgileri bu noktada koşulsuz olarak serbest bırakılmalıdır.
Daha fazla bilgi için Etkinleştirme..
COleServerDoc::OnDeactivateUI
Kullanıcı yerinde etkinleştirilen bir öğeyi devre dışı bıraktığında çağrılır.
virtual void OnDeactivateUI(BOOL bUndoable);
Parametreler
bUndoable
Düzenleme değişikliklerinin geri alınıp alınamayacağını belirtir.
Açıklamalar
Bu işlev, kapsayıcı uygulamasının kullanıcı arabirimini özgün durumuna geri yükler ve yerinde etkinleştirme için oluşturulan menüleri ve diğer denetimleri gizler.
Çerçeve her zaman bUndoable değerini FALSE olarak ayarlar. Sunucu geri almayı destekliyorsa ve geri alınabilecek bir işlem varsa, bUndoable true olarak ayarlanmış temel sınıf uygulamasını çağırın.
COleServerDoc::OnDocWindowActivate
Çerçeve, yerinde düzenleme için bir belge penceresini etkinleştirmek veya devre dışı bırakmak için bu işlevi çağırır.
virtual void OnDocWindowActivate(BOOL bActivate);
Parametreler
bActivate
Belge penceresinin etkinleştirilip etkinleştirilmeymeyeceğini veya devre dışı bırakıldığını belirtir.
Açıklamalar
Varsayılan uygulama, çerçeve düzeyi kullanıcı arabirimi öğelerini uygun şekilde kaldırır veya ekler. Öğenizi içeren belge etkinleştirildiğinde veya devre dışı bırakıldığında ek eylemler gerçekleştirmek istiyorsanız bu işlevi geçersiz kılın.
Daha fazla bilgi için Etkinleştirme..
COleServerDoc::OnExecOleCmd
Çerçeve, belirtilen bir komutu yürütmek veya komut için yardım görüntülemek için bu işlevi çağırır.
virtual HRESULT OnExecOleCmd(
const GUID* pguidCmdGroup,
DWORD nCmdID,
DWORD nCmdExecOpt,
VARIANTARG* pvarargIn,
VARIANTARG* pvarargOut);
Parametreler
pguidCmdGroup
Bir komut kümesini tanımlayan BIR GUID işaretçisi. Varsayılan komut grubunu belirtmek için NULL olabilir.
nCmdID
Yürütülecek komut. pguidCmdGroup tarafından tanımlanan grupta olmalıdır.
nCmdExecOut
Nesnenin olecmdexecopt numaralandırmasından aşağıdaki değerlerden biri veya daha fazlası olan komutu yürütme yöntemi:
OLECMDEXECOPT_DODEFAULT
OLECMDEXECOPT_PROMPTUSER
OLECMDEXECOPT_DONTPROMPTUSER
OLECMDEXECOPT_SHOWHELP
pvarargIn
Komutun giriş bağımsız değişkenlerini içeren VARIANTARG işaretçisi. NULL olabilir.
pvarargOut
Komuttan çıkış dönüş değerlerini almak için VARIANTARG işaretçisi. NULL olabilir.
Dönüş Değeri
Başarılı olursa S_OK döndürür; aksi takdirde, aşağıdaki hata kodlarından biri:
Value | Açıklama |
---|---|
E_UNEXPECTED | Beklenmeyen hata oluştu |
E_FAIL | Hata oluştu |
E_NOTIMPL | MFC'nin komutunu çevirmeye ve göndermeye çalışması gerektiğini gösterir |
OLECMDERR_E_UNKNOWNGROUP | pguidCmdGroup NULL değil, ancak tanınan bir komut grubu belirtmiyor |
OLECMDERR_E_NOTSUPPORTED | nCmdID , pguidCmdGroup grubunda geçerli bir komut olarak tanınmıyor |
OLECMDERR_DISABLED | nCmdID tarafından tanımlanan komut devre dışı bırakıldı ve yürütülemiyor |
OLECMDERR_NOHELP | Çağıran, nCmdID tarafından tanımlanan komutla ilgili yardım istedi, ancak yardım yok |
OLECMDERR_CANCELED | Kullanıcı yürütmeyi iptal etti |
Açıklamalar
COleCmdUI
, DocObject kullanıcı arabirimi komutlarının diğer özelliklerini etkinleştirmek, güncelleştirmek ve ayarlamak için kullanılabilir. Komutlar başlatıldıktan sonra ile OnExecOleCmd
yürütebilirsiniz.
Çerçeve, bir OLE belgesi komutunu çevirmeye ve göndermeye çalışmadan önce işlevini çağırır. Standart OLE belge komutlarını işlemek için bu işlevi geçersiz kılmanız gerekmez, ancak kendi özel komutlarınızı işlemek veya parametreleri kabul eden veya sonuç döndüren komutları işlemek istiyorsanız bu işleve bir geçersiz kılma sağlamanız gerekir.
Komutların çoğu bağımsız değişken almaz veya değer döndürmez. Çoğu komut için çağıran pvarargIn ve pvarargOut için NUL'leri geçirebilir. Giriş değerleri bekleyen komutlar için çağıran bir VARIANTARG değişkeni bildirebilir ve başlatabilir ve pvarargIn içindeki değişkene bir işaretçi geçirebilir. Tek bir değer gerektiren komutlar için bağımsız değişken doğrudan VARIANTARG'de depolanabilir ve işleve geçirilebilir. Desteklenen türlerden biri (ve SAFEARRAY gibi IDispatch
) kullanılarak VARIANTARG içinde birden çok bağımsız değişken paketlenmelidir.
Benzer şekilde, bir komut bağımsız değişkenler döndürürse çağıranın VARIANTARG bildirmesi beklenir, VT_EMPTY olarak başlatın ve adresini pvarargOut'a geçirin. Bir komut tek bir değer döndürürse, nesne bu değeri doğrudan pvarargOut içinde depolayabilir. VARIANTARG için uygun bir şekilde birden çok çıkış değeri paketlenmelidir.
Bu işlevin temel sınıf uygulaması, komut hedefiyle ilişkili OLE_COMMAND_MAP yapılarını gösterir ve komutu uygun bir işleyiciye göndermeyi dener. Temel sınıf uygulaması yalnızca bağımsız değişkenleri kabul etmeyen veya değer döndürmeyen komutlarla çalışır. Bağımsız değişkenleri kabul eden veya değer döndüren komutları işlemeniz gerekiyorsa, bu işlevi geçersiz kılmanız ve pvarargIn ve pvarargOut parametreleriyle kendiniz çalışmanız gerekir.
COleServerDoc::OnFrameWindowActivate
Kapsayıcı uygulamasının çerçeve penceresi etkinleştirildiğinde veya devre dışı bırakıldığında çerçeve bu işlevi çağırır.
virtual void OnFrameWindowActivate(BOOL bActivate);
Parametreler
bActivate
Çerçeve penceresinin etkinleştirilip etkinleştirilmeymeyeceğini veya devre dışı bırakılıp devre dışı bırakılmayacağını belirtir.
Açıklamalar
Varsayılan uygulama, çerçeve penceresinin içinde bulunabileceği tüm yardım modlarını iptal eder. Çerçeve penceresi etkinleştirildiğinde veya devre dışı bırakıldığında özel işlem gerçekleştirmek istiyorsanız bu işlevi geçersiz kılın.
Daha fazla bilgi için Etkinleştirme..
COleServerDoc::OnGetEmbeddedItem
Bir kapsayıcı uygulaması ekli öğe oluşturmak veya düzenlemek için sunucu uygulamasını çağırdığında çerçeve tarafından çağrılır.
virtual COleServerItem* OnGetEmbeddedItem() = 0;
Dönüş Değeri
Belgenin tamamını temsil eden bir öğenin işaretçisi; İşlem başarısız olursa NULL.
Açıklamalar
Varsayılan uygulama yoktur. Belgenin tamamını temsil eden bir öğe döndürmek için bu işlevi geçersiz kılmalısınız. Bu dönüş değeri, türetilmiş bir COleServerItem
sınıfın nesnesi olmalıdır.
COleServerDoc::OnReactivateAndUndo
Kullanıcı yerinde etkinleştirilmiş, değiştirilmiş ve ardından devre dışı bırakılmış bir öğede yapılan değişiklikleri geri almayı seçtiğinde çerçeve bu işlevi çağırır.
virtual BOOL OnReactivateAndUndo();
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Varsayılan uygulama hata belirtmek için FALSE döndürme dışında hiçbir şey yapmaz.
Uygulamanız geri almayı destekliyorsa bu işlevi geçersiz kılın. Genellikle geri alma işlemini gerçekleştirir, ardından öğesini çağırarak ActivateInPlace
öğeyi etkinleştirirsiniz. Kapsayıcı uygulaması Microsoft Foundation Sınıf Kitaplığı ile yazılmışsa, çağrılması COleClientItem::ReactivateAndUndo
bu işlevin çağrılmaya neden olur.
COleServerDoc::OnResizeBorder
Kapsayıcı uygulamasının çerçeve pencereleri boyut değiştirdiğinde çerçeve bu işlevi çağırır.
virtual void OnResizeBorder(
LPCRECT lpRectBorder,
LPOLEINPLACEUIWINDOW lpUIWindow,
BOOL bFrame);
Parametreler
lpRectBorder
Bir yapı veya RECT
kenarlık koordinatlarını belirten bir CRect
nesne işaretçisi.
lpUIWindow
Geçerli yerinde düzenleme oturumuna sahip olan sınıfın IOleInPlaceUIWindow
nesnesine yönelik işaretçi.
bFrame
lpUIWindow kapsayıcı uygulamasının en üst düzey çerçeve penceresine işaret ederse TRUE veya lpUIWindow kapsayıcı uygulamasının belge düzeyi çerçeve penceresine işaret ederse YANLIŞ.
Açıklamalar
Bu işlev, araç çubuklarını ve diğer kullanıcı arabirimi öğelerini yeni pencere boyutuna uygun olarak yeniden boyutlandırıp ayarlar.
Daha fazla bilgi için bkz . Windows SDK'sında IOleInPlaceUIWindow .
Bu, gelişmiş bir geçersiz kılınabilir.
COleServerDoc::OnSetHostNames
Kapsayıcı bu belgenin konak adlarını ayarlar veya değiştirirken çerçeve tarafından çağrılır.
virtual void OnSetHostNames(
LPCTSTR lpszHost,
LPCTSTR lpszHostObj);
Parametreler
lpszHost
Kapsayıcı uygulamasının adını belirten bir dize işaretçisi.
lpszHostObj
Belge için kapsayıcının adını belirten bir dize işaretçisi.
Açıklamalar
Varsayılan uygulama, bu belgeye başvuran tüm görünümler için belge başlığını değiştirir.
Uygulamanız başlıkları farklı bir mekanizma aracılığıyla ayarlarsa bu işlevi geçersiz kılın.
COleServerDoc::OnSetItemRects
Çerçeve, kapsayıcı uygulamasının çerçeve penceresi içinde yerinde düzenleme çerçevesi penceresini konumlandırmak için bu işlevi çağırır.
virtual void OnSetItemRects(
LPCRECT lpPosRect,
LPCRECT lpClipRect);
Parametreler
lpPosRect
Kapsayıcı uygulamasının istemci alanına göre yerinde çerçeve penceresinin konumunu belirten bir RECT
CRect
yapıya veya nesneye yönelik işaretçi.
lpClipRect
Kapsayıcı uygulamasının istemci alanına göre yerinde çerçeve penceresinin kırpma dikdörtgenini belirten bir RECT
CRect
yapı veya nesne işaretçisi.
Açıklamalar
Gerekirse görünümün yakınlaştırma faktörünü güncelleştirmek için bu işlevi geçersiz kılın.
Bu işlev genellikle bir RequestPositionChange
çağrıya yanıt olarak çağrılır, ancak kapsayıcı tarafından herhangi bir zamanda yerinde öğe için konum değişikliği istemek üzere çağrılabilir.
COleServerDoc::OnShowControlBars
Çerçeve, sunucu uygulamasının pFrameWnd tarafından tanımlanan çerçeve penceresiyle ilişkili denetim çubuklarını göstermek veya gizlemek için bu işlevi çağırır.
virtual void OnShowControlBars(
CFrameWnd* pFrameWnd,
BOOL bShow);
Parametreler
pFrameWnd
Denetim çubuklarının gizli olması veya gösterilmesi gereken çerçeve penceresinin işaretçisi.
bShow
Denetim çubuklarının gösterilip gösterilmeyeceğini veya gizleneceğini belirler.
Açıklamalar
Varsayılan uygulama, bu çerçeve penceresine ait tüm denetim çubuklarını numaralandırır ve gizler veya gösterir.
COleServerDoc::OnShowDocument
Çerçeve, sunucu belgesinin OnShowDocument
gizli olması veya gösterilmesi gerektiğinde işlevini çağırır.
virtual void OnShowDocument(BOOL bShow);
Parametreler
bShow
Belgenin kullanıcı arabiriminin gösterileceğini veya gizlenip gizlenmeyeceğini belirtir.
Açıklamalar
bShow TRUE ise, varsayılan uygulama gerekirse sunucu uygulamasını etkinleştirir ve kapsayıcı uygulamasının öğenin görünür olması için penceresini kaydırmasına neden olur. bShow YANLIŞ ise, varsayılan uygulama öğesine yapılan bir çağrı OnDeactivate
aracılığıyla öğeyi devre dışı bırakır, ardından ilki dışında belge için oluşturulmuş olan tüm çerçeve pencerelerini yok eder veya gizler. Görünür belge kalmazsa, varsayılan uygulama sunucu uygulamasını gizler.
COleServerDoc::OnUpdateDocument
Bileşik belgeye eklenmiş bir öğe olan bir belgeyi kaydederken çerçeve tarafından çağrılır.
virtual BOOL OnUpdateDocument();
Dönüş Değeri
Belge başarıyla güncelleştirildiyse sıfır olmayan; aksi takdirde 0.
Açıklamalar
Varsayılan uygulama COleServerDoc::NotifySaved ve COleServerDoc::SaveEmbedding üye işlevlerini çağırır ve belgeyi temiz olarak işaretler. Katıştırılmış bir öğeyi güncelleştirirken özel işlem gerçekleştirmek istiyorsanız bu işlevi geçersiz kılın.
COleServerDoc::RequestPositionChange
Kapsayıcı uygulamasının öğenin konumunu değiştirmesini sağlamak için bu üye işlevini çağırın.
void RequestPositionChange(LPCRECT lpPosRect);
Parametreler
lpPosRect
Öğenin yeni konumunu içeren bir RECT
CRect
yapıya veya nesneye yönelik işaretçi.
Açıklamalar
Bu işlev genellikle yerinde etkin bir öğedeki veriler değiştiğinde (ile UpdateAllItems
birlikte) çağrılır. Bu çağrının ardından kapsayıcı çağrısı OnSetItemRects
yaparak değişikliği gerçekleştirebilir veya gerçekleştirmeyebilir. Sonuçta elde edilen konum istenenden farklı olabilir.
COleServerDoc::SaveEmbedding
Kapsayıcı uygulamasına eklenmiş nesneyi kaydetmesini bildirmek için bu işlevi çağırın.
void SaveEmbedding();
Açıklamalar
Bu işlev' den otomatik olarak çağrılır OnUpdateDocument
. Bu işlevin öğenin diskte güncelleştirilebilmesine neden olduğunu, bu nedenle genellikle yalnızca belirli bir kullanıcı eyleminin sonucu olarak çağrıldığını unutmayın.
COleServerDoc::ScrollContainerBy
ScrollContainerBy
Üye işlevini çağırarak kapsayıcı belgesini tarafından belirtilen sizeScroll
piksel cinsinden kaydırma.
BOOL ScrollContainerBy(CSize sizeScroll);
Parametreler
sizeScroll
Kapsayıcı belgesinin ne kadar kaydırılır olduğunu gösterir.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Pozitif değerler aşağı ve sağa kaydırmayı gösterir; negatif değerler yukarı ve sola kaydırmayı gösterir.
COleServerDoc::UpdateAllItems
Belgeye bağlı tüm bağlı öğeleri belgenin değiştiğini bildirmek için bu işlevi çağırın.
void UpdateAllItems(
COleServerItem* pSender,
LPARAM lHint = 0L,
CObject* pHint = NULL,
DVASPECT nDrawAspect = DVASPECT_CONTENT);
Parametreler
pSender
Belgeyi değiştiren öğe işaretçisi veya tüm öğeler güncelleştirilecekse NULL.
lHint
Değişiklik hakkında bilgi içerir.
pHint
Değişiklikle ilgili bilgileri depolayarak nesne işaretçisi.
nDrawAspect
Öğenin nasıl çizileceğini belirler. Bu, DVASPECT numaralandırmasından bir değerdir. Bu parametre aşağıdaki değerlerden birine sahip olabilir:
DVASPECT_CONTENT Öğesi, kapsayıcısında eklenmiş bir nesne olarak görüntülenebileceği şekilde temsil edilir.
DVASPECT_THUMBNAIL Öğe, gözatma aracında görüntülenebilmesi için "küçük resim" gösteriminde işlenir.
DVASPECT_ICON Öğesi bir simgeyle gösterilir.
DVASPECT_DOCPRINT Öğe, Dosya menüsündeki Yazdır komutu kullanılarak yazdırılmış gibi gösterilir.
Açıklamalar
Genellikle kullanıcı sunucu belgesini değiştirdikten sonra bu işlevi çağırırsınız. Bir OLE öğesi belgeye otomatik bağlantıyla bağlıysa, öğe değişiklikleri yansıtacak şekilde güncelleştirilir. Microsoft Foundation Sınıf Kitaplığı ile yazılan kapsayıcı uygulamalarında OnChange üye işlevi çağrılırCOleClientItem
.
Bu işlev, pHint, lHint ve nDrawAspect ile gönderen öğe dışındaki belge öğelerinin her biri için üye işlevini çağırırOnUpdate
. Belgede yapılan değişikliklerle ilgili bilgileri öğelere geçirmek için bu parametreleri kullanın. lHint kullanarak bilgileri kodlayabilir veya değişiklikler hakkındaki bilgileri depolamak ve pHint kullanarak bu sınıfın bir nesnesini geçirmek için türetilmiş bir sınıf tanımlayabilirsinizCObject
. Sununun OnUpdate
değişip değişmediğine bağlı olarak her öğenin güncelleştirilmesini iyileştirmek için türetilmiş sınıfınızdaki COleServerItem
üye işlevini geçersiz kılın.
Ayrıca bkz.
MFC Örnek HIERSVR
COleLinkingDoc Sınıfı
Hiyerarşi Grafiği
COleDocument Sınıfı
COleLinkingDoc Sınıfı
COleTemplateServer Sınıfı