Aracılığıyla paylaş


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

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

Genel Yöntemler

Ad Tanım
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

Ad Tanım
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.

COleServerDocnesneleri 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 COleClientItemCOleServerItem 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 COleServerDociç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 OnGetEmbeddedItembir 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 COleServerDoctüretilmiş sınıf gerekir. Örneğin, sunucu uygulamanız çalışma sayfalarını ve grafikleri destekliyorsa, türetilmiş iki COleServerDocsınıfa ihtiyacınız vardır.

Sunucular hakkında daha fazla bilgi için Sunucular: Sunucu Uygulama makalesine bakın.

Devralma Hiyerarşisi

Cobject

Ccmdtarget

Cdocument

Coledocument

COleLinkingDoc

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

İade 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 , OnOpenDocumentCOleLinkingDoc::Register ve OnSaveDocumentuygulaması tarafından COleLinkingDocsizin 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.

İade 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();

İade 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();

İade 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;

İade 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.

İade 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. Örnek:

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

İade 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 RECTCRect 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 RECTCRect 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.

İade 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;

İade 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;

İade 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;

İade 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.

Dekont

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 COleServerDocsizin 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.

İade Değeri

Başarılı olursa S_OK döndürür; aksi takdirde, aşağıdaki hata kodlarından biri:

Değer Tanım
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 OnExecOleCmdyü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;

İade 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 COleServerItemsı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();

İade 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 RECTCRect 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 RECTCRect 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ı OnDeactivatearacı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();

İade 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 RECTCRect 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 UpdateAllItemsbirlikte) çağrılır. Bu çağrının ardından kapsayıcı çağrısı OnSetItemRectsyaparak 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 sizeScrollpiksel cinsinden kaydırma.

BOOL ScrollContainerBy(CSize sizeScroll);

Parametreler

sizeScroll
Kapsayıcı belgesinin ne kadar kaydırılır olduğunu gösterir.

İade 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ı