COleServerItem Sınıfı
OLE öğelerine sunucu arabirimi sağlar.
class COleServerItem : public CDocItem
Veri Akışı Adı | Açıklama |
---|---|
COleServerItem::COleServerItem | Bir COleServerItem nesne oluşturur. |
Veri Akışı Adı | Açıklama |
---|---|
COleServerItem::AddOtherClipboardData | Sunu ve dönüştürme biçimlerini bir COleDataSource nesneye yerleştirir. |
COleServerItem::CopyToClipboard | Öğeyi Pano'ya kopyalar. |
COleServerItem::D oDragDrop | Sürükle ve bırak işlemi gerçekleştirir. |
COleServerItem::GetClipboardData | Veri aktarımında kullanılacak veri kaynağını alır (sürükleyip bırakma veya Pano). |
COleServerItem::GetDocument | Öğeyi içeren sunucu belgesini döndürür. |
COleServerItem::GetEmbedSourceData | Ole öğesinin CF_EMBEDSOURCE verilerini alır. |
COleServerItem::GetItemName | Öğenin adını döndürür. Yalnızca bağlı öğeler için kullanılır. |
COleServerItem::GetLinkSourceData | Ole öğesinin CF_LINKSOURCE verilerini alır. |
COleServerItem::GetObjectDescriptorData | Ole öğesinin CF_OBJECTDESCRIPTOR verilerini alır. |
COleServerItem::IsConnected | Öğenin etkin bir kapsayıcıya bağlı olup olmadığını gösterir. |
COleServerItem::IsLinkedItem | Öğenin bağlı bir OLE öğesini temsil edip etmediğini gösterir. |
COleServerItem::NotifyChanged | Tüm kapsayıcıları otomatik bağlantı güncelleştirmesi ile güncelleştirir. |
COleServerItem::OnDoVerb | Fiili yürütmek için çağrıldı. |
COleServerItem::OnDraw | Kapsayıcı öğeyi çizmek istediğinde çağrılır; uygulama gerekli. |
COleServerItem::OnDrawEx | Özel öğe çizimi için çağrıldı. |
COleServerItem::OnGetClipboardData | Pano'ya kopyalanacak verileri almak için çerçeve tarafından çağrılır. |
COleServerItem::OnGetExtent | OLE öğesinin boyutunu almak için çerçeve tarafından çağrılır. |
COleServerItem::OnInitFromData | Çerçeve tarafından, belirtilen veri aktarımı nesnesinin içeriğini kullanarak bir OLE öğesini başlatmak için çağrılır. |
COleServerItem::OnQueryUpdateItems | Herhangi bir bağlı öğenin güncelleştirilmesini gerektirip gerektirmediğini belirlemek için çağrılır. |
COleServerItem::OnRenderData | Gecikmeli işlemenin bir parçası olarak verileri alır. |
COleServerItem::OnRenderFileData | Gecikmeli işlemenin bir parçası olarak bir CFile nesneye veri alır. |
COleServerItem::OnRenderGlobalData | Gecikmeli işlemenin bir parçası olarak HGLOBAL'a veri alır. |
COleServerItem::OnSetColorScheme | Öğenin renk düzenini ayarlamak için çağrılır. |
COleServerItem::OnSetData | Öğenin verilerini ayarlamak için çağrılır. |
COleServerItem::OnSetExtent | OLE öğesinin boyutunu ayarlamak için çerçeve tarafından çağrılır. |
COleServerItem::OnUpdate | Öğenin ait olduğu belgenin bir bölümü değiştirildiğinde çağrılır. |
COleServerItem::OnUpdateItems | Sunucu belgesindeki tüm öğelerin sunu önbelleğini güncelleştirmek için çağrılır. |
COleServerItem::SetItemName | Öğenin adını ayarlar. Yalnızca bağlı öğeler için kullanılır. |
Veri Akışı Adı | Açıklama |
---|---|
COleServerItem::GetDataSource | Dönüştürme biçimlerini depolamak için kullanılan nesneyi alır. |
COleServerItem::OnHide | OLE öğesini gizlemek için çerçeve tarafından çağrılır. |
COleServerItem::OnOpen | OLE öğesini kendi üst düzey penceresinde görüntülemek için çerçeve tarafından çağrılır. |
COleServerItem::OnShow | Kapsayıcı öğeyi göstermek istediğinde çağrılır. |
Veri Akışı Adı | Açıklama |
---|---|
COleServerItem::m_sizeExtent | Sunucuya OLE öğesinin ne kadarının görünür olduğu hakkında bilgi sağlar. |
Bağlantılı öğe sunucu belgesinin bir bölümünü veya tümünü temsil edebilir. Katıştırılmış öğe her zaman bir sunucu belgesinin tamamını temsil eder.
sınıfı, COleServerItem
genellikle kapsayıcı uygulamasından gelen isteklere yanıt olarak OLE sistemi dinamik bağlantı kitaplıkları (DLL' ler) tarafından çağrılan birkaç geçersiz kılınabilir üye işlevi tanımlar. Bu üye işlevleri kapsayıcı uygulamasının öğeyi görüntüleme, fiillerini yürütme veya çeşitli biçimlerde verilerini alma gibi çeşitli yollarla dolaylı olarak işlemesine olanak tanır.
kullanmak COleServerItem
için, öğesinden bir sınıf türetip OnDraw ve Serialize üye işlevlerini uygulayın. OnDraw
işlevi bir öğenin meta dosyası gösterimini sağlayarak kapsayıcı uygulaması bileşik bir belge açtığında görüntülenmesini sağlar. Serialize
işleviCObject
, bir öğenin yerel gösterimini sağlayarak ekli bir öğenin sunucu ve kapsayıcı uygulamaları arasında aktarılmasını sağlar. OnGetExtent , kapsayıcıya öğenin doğal boyutunu sağlayarak kapsayıcının öğeyi boyutlandırmasını sağlar.
Sunucular ve ilgili konular hakkında daha fazla bilgi için Kapsayıcılar: Gelişmiş Özellikler makalesindeki Sunucular: Sunucu Uygulama ve "Kapsayıcı/Sunucu Uygulaması Oluşturma" makalesine bakın.
COleServerItem
Üst bilgi: afxole.h
OLE öğesinin sunu ve dönüştürme biçimlerini belirtilen COleDataSource
nesneye yerleştirmek için bu işlevi çağırın.
void AddOtherClipboardData(COleDataSource* pDataSource);
pDataSource
COleDataSource
Verilerin yerleştirilmesi gereken nesnenin işaretçisi.
Öğenin sunu biçimini (meta dosyası resmi) sağlamak için OnDraw üye işlevini uygulamış olmanız gerekir. Diğer dönüştürme biçimlerini desteklemek için, GetDataSource tarafından döndürülen COleDataSource nesnesini kullanarak bunları kaydedin ve desteklemek istediğiniz biçimlerde veri sağlamak için OnRenderData üye işlevini geçersiz kılın.
Bir COleServerItem
nesne oluşturur ve bunu sunucu belgesinin belge öğeleri koleksiyonuna ekler.
COleServerItem(
COleServerDoc* pServerDoc,
BOOL bAutoDelete);
pServerDoc
Yeni öğeyi içerecek belge işaretçisi.
bAutoDelete
Nesnenin bağlantısı yayınlandığında silinip silinemeyeceğini gösteren bayrak. Nesne, belgenizin verilerinin COleServerItem
silmeniz gereken ayrılmaz bir parçasıysa, bunu YANLIŞ olarak ayarlayın. Nesne, belgenizin verilerinde çerçeve tarafından silinebilecek bir aralığı tanımlamak için kullanılan ikincil bir yapıysa bunu TRUE olarak ayarlayın.
OLE öğesini Pano'ya kopyalamak için bu işlevi çağırın.
void CopyToClipboard(BOOL bIncludeLink = FALSE);
bIncludeLink
Bağlantı verilerinin Pano'ya kopyalanması gerekiyorsa bunu TRUE olarak ayarlayın. Sunucu uygulamanız bağlantıları desteklemiyorsa bunu YANLIŞ olarak ayarlayın.
İşlev, OLE öğesinin verilerini desteklenen biçimlerde içeren bir COleDataSource nesnesi oluşturmak için OnGetClipboardData üye işlevini kullanır. İşlev daha sonra COleDataSource::SetClipboard işlevini kullanarak nesneyi Pano'ya yerleştirirCOleDataSource
. nesnesi, COleDataSource
öğenin yerel verilerini ve CF_METAFILEPICT biçimindeki gösterimini ve ayrıca desteklemeyi seçtiğiniz dönüştürme biçimlerindeki verileri içerir. Bu üye işlevinin çalışması için Serialize ve OnDraw'ı uygulamış olmanız gerekir.
DoDragDrop
Sürükle ve bırak işlemi gerçekleştirmek için üye işlevini çağırın.
DROPEFFECT DoDragDrop(
LPCRECT lpRectItem,
CPoint ptOffset,
BOOL bIncludeLink = FALSE,
DWORD dwEffects = DROPEFFECT_COPY | DROPEFFECT_MOVE,
LPCRECT lpRectStartDrag = NULL);
lpRectItem
Öğenin ekrandaki dikdörtgeni, istemci alanına göre piksel cinsinden.
ptOffset
Fare konumunun sürükleme sırasında olduğu lpItemRect uzaklığı.
bIncludeLink
Bağlantı verilerinin Pano'ya kopyalanması gerekiyorsa bunu TRUE olarak ayarlayın. Uygulamanız bağlantıları desteklemiyorsa FALSE olarak ayarlayın.
dwEffects
Sürükleme kaynağının sürükleme işleminde izin verecek etkilerini belirler (Kopyala, Taşı ve Bağla'nın birleşimi).
lpRectStartDrag
Sürüklemenin gerçekten nerede başlatıldığını tanımlayan dikdörtgenin işaretçisi. Daha fazla bilgi için aşağıdaki Açıklamalar bölümüne bakın.
DROPEFFECT sabit listesinden bir değer. DROPEFFECT_MOVE ise, özgün veriler kaldırılmalıdır.
Sürükle ve bırak işlemi hemen başlatılmaz. Fare imleci lpRectStartDrag tarafından belirtilen dikdörtgenden ayrılana kadar veya belirtilen sayıda milisaniye geçene kadar bekler. lpRectStartDrag NULL ise, fare imleci bir piksel hareket ettiğinde sürüklemenin başlaması için varsayılan bir dikdörtgen kullanılır.
Gecikme süresi bir kayıt defteri anahtarı ayarı tarafından belirtilir. Gecikme süresini CWinApp::WriteProfileString veya CWinApp::WriteProfileInt çağrısı yaparak değiştirebilirsiniz. Gecikme süresini belirtmezseniz, varsayılan 200 milisaniyelik bir değer kullanılır. Sürükleme gecikme süresi aşağıdaki gibi depolanır:
Windows NT Sürükleme gecikme süresi HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\NT\CurrentVersion\IniFileMapping\win.ini\Windows\DragDelay konumunda depolanır.
Windows 3.x Sürükleme gecikme süresi WIN'de depolanır. INI dosyası, [Windows} bölümü altında.
Windows 95/98 Sürükleme gecikme süresi win'in önbelleğe alınmış bir sürümünde depolanır. INI.
Sürükleme gecikmesi bilgilerinin kayıt defterinde veya içinde nasıl depolandığı hakkında daha fazla bilgi için. INI dosyası, bkz . Windows SDK'sında WriteProfileString .
Belirtilen COleDataSource nesnesini CopyToClipboard olarak adlandırdıysanız Pano'ya kopyalanacak tüm verilerle doldurmak için bu işlevi çağırın (DoDragDrop olarak adlandırdıysanız aynı veriler de aktarılır).
void GetClipboardData(
COleDataSource* pDataSource,
BOOL bIncludeLink = FALSE,
LPPOINT lpOffset = NULL,
LPSIZE lpSize = NULL);
pDataSource
OLE öğesinin COleDataSource
verilerini desteklenen tüm biçimlerde alacak nesnenin işaretçisi.
bIncludeLink
Bağlantı verilerinin Pano'ya kopyalanması gerekiyorsa TRUE. Sunucu uygulamanız bağlantıları desteklemiyorsa YANLIŞ.
lpOffset
Fare imlecinin nesnenin kaynağından piksel cinsinden uzaklığı.
lpSize
Nesnenin piksel cinsinden boyutu.
Bu işlev, OLE öğesinin yerel verilerini almak için GetEmbedSourceData üye işlevini çağırır ve sunu biçimini ve desteklenen dönüştürme biçimlerini almak için AddOtherClipboardData üye işlevini çağırır. bIncludeLink TRUE ise işlev, öğenin bağlantı verilerini almak için GetLinkSourceData'yı da çağırır.
Bir nesneye tarafından CopyToClipboard
sağlanan biçimlerden önce veya sonra biçimler COleDataSource
koymak istiyorsanız bu işlevi geçersiz kılın.
Sunucu uygulamasının desteklediği dönüştürme biçimlerini depolamak için kullanılan COleDataSource nesnesini almak için bu işlevi çağırın.
COleDataSource* GetDataSource();
Dönüştürme biçimlerini depolamak COleDataSource
için kullanılan nesne işaretçisi.
Sunucu uygulamanızın veri aktarımı işlemleri sırasında çeşitli biçimlerde veri sunmasını istiyorsanız, bu biçimleri bu işlev tarafından döndürülen nesneye COleDataSource
kaydedin. Örneğin, Pano veya sürükle ve bırak işlemleri için OLE öğesinin CF_TEXT bir gösterimini sağlamak istiyorsanız, biçimi bu işlevin COleDataSource
döndürdüğü nesneye kaydeder ve sonra verileri sağlamak için üye işlevini geçersiz kılarsınız OnRenderXxxData
.
Öğeyi içeren belgeye bir işaretçi almak için bu işlevi çağırın.
COleServerDoc* GetDocument() const;
Öğeyi içeren belge işaretçisi; Öğe bir belgenin parçası değilse NULL.
Bu, oluşturucuya bağımsız değişken olarak iletmiş olduğunuz sunucu belgesine COleServerItem
erişim sağlar.
Ole öğesinin CF_EMBEDSOURCE verilerini almak için bu işlevi çağırın.
void GetEmbedSourceData(LPSTGMEDIUM lpStgMedium);
lpStgMedium
OLE öğesinin CF_EMBEDSOURCE verilerini alacak STGMEDIUM yapısının işaretçisi.
Bu biçim, öğenin yerel verilerini içerir. Bu işlevin Serialize
düzgün çalışması için üye işlevini uygulamış olmanız gerekir.
Sonuç daha sonra COleDataSource::CacheData kullanılarak bir veri kaynağına eklenebilir. Bu işlev COleServerItem::OnGetClipboardData tarafından otomatik olarak çağrılır.
Daha fazla bilgi için bkz . Windows SDK'sında STGMEDIUM .
Öğenin adını almak için bu işlevi çağırın.
const CString& GetItemName() const;
Öğenin adı.
Bu işlevi genellikle yalnızca bağlı öğeler için çağırırsınız.
Ole öğesinin CF_LINKSOURCE verilerini almak için bu işlevi çağırın.
BOOL GetLinkSourceData(LPSTGMEDIUM lpStgMedium);
lpStgMedium
OLE öğesinin CF_LINKSOURCE verilerini alacak STGMEDIUM yapısının işaretçisi.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Bu biçim, OLE öğesinin türünü açıklayan CLSID'yi ve OLE öğesini içeren belgeyi bulmak için gereken bilgileri içerir.
Sonuç daha sonra COleDataSource::CacheData ile bir veri kaynağına eklenebilir. Bu işlev, OnGetClipboardData tarafından otomatik olarak çağrılır.
Daha fazla bilgi için bkz . Windows SDK'sında STGMEDIUM .
Ole öğesinin CF_OBJECTDESCRIPTOR verilerini almak için bu işlevi çağırın.
void GetObjectDescriptorData(
LPPOINT lpOffset,
LPSIZE lpSize,
LPSTGMEDIUM lpStgMedium);
lpOffset
OLE öğesinin sol üst köşesinden fare tıklamasının uzaklığı. NULL olabilir.
lpSize
OLE öğesinin boyutu. NULL olabilir.
lpStgMedium
OLE öğesinin CF_OBJECTDESCRIPTOR verilerini alacak STGMEDIUM yapısının işaretçisi.
Bilgiler lpStgMedium tarafından işaret edilen yapıya STGMEDIUM
kopyalanır. Bu biçim, Özel Yapıştır iletişim kutusu için gereken bilgileri içerir.
Daha fazla bilgi için bkz . Windows SDK'sında STGMEDIUM .
OLE öğesinin bağlı olup olmadığını görmek için bu işlevi çağırın.
BOOL IsConnected() const;
Öğe bağlıysa sıfır olmayan; aksi takdirde 0.
Bir veya daha fazla kapsayıcının öğeye başvurusu varsa ole öğesi bağlı olarak kabul edilir. Bir öğe, başvuru sayısı 0'dan büyükse veya eklenmiş bir öğeyse bağlanır.
OLE öğesinin bağlı bir öğe olup olmadığını görmek için bu işlevi çağırın.
BOOL IsLinkedItem() const;
Öğe bağlantılı bir öğeyse sıfır olmayan; aksi takdirde 0.
Öğe geçerliyse ve belgenin katıştırılmış öğeler listesinde döndürülmezse bir öğe bağlanır. Bağlantılı bir öğe bir kapsayıcıya bağlı olabilir veya olmayabilir.
Hem bağlı hem de eklenmiş öğeler için aynı sınıfın kullanılması yaygın bir durumdur. IsLinkedItem
bağlı öğelerin katıştırılmış öğelerden farklı davranmasını sağlar, ancak kod birçok kez ortaktır.
Bu üye sunucuya kapsayıcı belgesinde nesnenin ne kadarının görünür olduğunu söyler.
CSize m_sizeExtent;
OnSetExtent'in varsayılan uygulaması bu üyeyi ayarlar.
Bağlantılı öğe değiştirildikten sonra bu işlevi çağırın.
void NotifyChanged(DVASPECT nDrawAspect = DVASPECT_CONTENT);
nDrawAspect
DVASPECT numaralandırmasından OLE öğesinin hangi yönünün değiştiğini gösteren bir değer. Bu parametre aşağıdaki değerlerden herhangi 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.
Bir kapsayıcı öğ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ığı kullanılarak yazılan kapsayıcı uygulamalarında COleClientItem ::OnChange yanıt olarak çağrılır.
Belirtilen fiili yürütmek için çerçeve tarafından çağrılır.
virtual void OnDoVerb(LONG iVerb);
iVerb
Yürütülecek fiili belirtir. Aşağıdakilerden herhangi biri olabilir:
Değer | Anlamı | Simge |
---|---|---|
0 | Birincil fiil | OLEIVERB_PRIMARY |
1 | İkincil fiil | (Yok) |
-1 | Öğeyi düzenleme için görüntüle | OLEIVERB_SHOW |
-2 | Öğeyi ayrı pencerede düzenleme | OLEIVERB_OPEN |
-3 | Öğeyi gizle | OLEIVERB_HIDE |
-1 değeri genellikle başka bir fiilin diğer adıdır. Açık düzenleme desteklenmiyorsa- 2, -1 ile aynı etkiye sahiptir. Ek değerler için bkz . Windows SDK'sında IOleObject::D oVerb .
Kapsayıcı uygulaması Microsoft Foundation Sınıf Kitaplığı ile yazıldıysa, ilgili COleClientItem
nesnenin COleClientItem::Activate üye işlevi çağrıldığında bu işlev çağrılır. Birincil fiil veya OLEIVERB_SHOW belirtilirse varsayılan uygulama OnShow üye işlevini, ikincil fiil veya OLEIVERB_OPEN belirtilirse OnOpen ve OLEIVERB_HIDE belirtilirse OnHide'yi çağırır. iVerb yukarıda listelenen fiillerden biri değilse, varsayılan uygulama çağırırOnShow
.
Birincil fiilinizde öğe gösterilmiyorsa bu işlevi geçersiz kılın. Örneğin, öğe bir ses kaydıysa ve birincil fiili Oynat ise, öğeyi yürütmek için sunucu uygulamasını görüntülemeniz gerekmez.
Daha fazla bilgi için bkz . Windows SDK'sında IOleObject::D oVerb .
OLE öğesini bir meta dosyaya işlemek için çerçeve tarafından çağrılır.
virtual BOOL OnDraw(
CDC* pDC,
CSize& rSize) = 0;
pDC
Öğenin çizildiği CDC nesnesine yönelik bir işaretçi. Görüntüleme bağlamı öznitelik görüntüleme bağlamı ile otomatik olarak bağlantılıdır, bu nedenle öznitelik işlevlerini çağırabilirsiniz, ancak bunu yaptığınızda meta dosyası cihaza özgü olur.
rSize
Meta dosyasının çizileceği HIMETRIC birimlerinde boyut.
Öğe başarıyla çizildiyse sıfır olmayan; aksi takdirde 0.
OLE öğesinin meta dosyası gösterimi, kapsayıcı uygulamasında öğeyi görüntülemek için kullanılır. Kapsayıcı uygulaması Microsoft Foundation Sınıf Kitaplığı ile yazılmışsa, meta dosyası ilgili COleClientItem nesnesinin Draw üye işlevi tarafından kullanılır. Varsayılan uygulama yoktur. Öğeyi belirtilen cihaz bağlamı içine çizmek için bu işlevi geçersiz kılmalısınız.
Tüm çizimler için çerçeve tarafından çağrılır.
virtual BOOL OnDrawEx(
CDC* pDC,
DVASPECT nDrawAspect,
CSize& rSize);
pDC
Öğenin çizildiği CDC nesnesine yönelik bir işaretçi. DC öznitelik DC'sine otomatik olarak bağlanır, bu nedenle öznitelik işlevlerini çağırabilirsiniz, ancak bunu yaptığınızda meta dosyası cihaza özgü olur.
nDrawAspect
DVASPECT numaralandırmasından bir değer. Bu parametre aşağıdaki değerlerden herhangi 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.
rSize
Öğenin HIMETRIC birimlerindeki boyutu.
Öğe başarıyla çizildiyse sıfır olmayan; aksi takdirde 0.
Varsayılan uygulama, DVASPECT DVASPECT_CONTENT eşit olduğunda çağırır OnDraw
; aksi takdirde başarısız olur.
DVASPECT_ICON veya DVASPECT_THUMBNAIL gibi DVASPECT_CONTENT dışındaki yönlerin sunu verilerini sağlamak için bu işlevi geçersiz kılın.
CopyToClipboard üye işlevine yapılan bir COleDataSource
çağrıyla Pano'ya yerleştirilecek tüm verileri içeren bir nesneyi almak için çerçeve tarafından çağrılır .
virtual COleDataSource* OnGetClipboardData(
BOOL bIncludeLink,
LPPOINT lpOffset,
LPSIZE lpSize);
bIncludeLink
Bağlantı verilerinin Pano'ya kopyalanması gerekiyorsa bunu TRUE olarak ayarlayın. Sunucu uygulamanız bağlantıları desteklemiyorsa bunu YANLIŞ olarak ayarlayın.
lpOffset
Fare imlecinin nesnenin kaynağından piksel cinsinden uzaklığı.
lpSize
Nesnenin piksel cinsinden boyutu.
Pano verilerini içeren COleDataSource nesnesine yönelik bir işaretçi.
Bu işlevin varsayılan uygulaması GetClipboardData'yi çağırır.
OLE öğesinin boyutunu HIMETRIC birimlerinde almak için çerçeve tarafından çağrılır.
virtual BOOL OnGetExtent(
DVASPECT nDrawAspect,
CSize& rSize);
nDrawAspect
Sınırları alınacak OLE öğesinin yönünü belirtir. Bu parametre aşağıdaki değerlerden herhangi 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.
rSize
OLE öğesinin boyutunu alacak bir CSize
nesneye başvuru.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Kapsayıcı uygulaması Microsoft Foundation Sınıf Kitaplığı ile yazıldıysa, ilgili COleClientItem
nesnenin GetExtent üye işlevi çağrıldığında bu işlev çağrılır. Varsayılan uygulama hiçbir şey yapmaz. Bunu kendiniz uygulamalısınız. OLE öğesinin boyutu için bir isteği işlerken özel işlem gerçekleştirmek istiyorsanız bu işlevi geçersiz kılın.
OLE öğesini gizlemek için çerçeve tarafından çağrılır.
virtual void OnHide();
Varsayılan olarak öğesini çağırır COleServerDoc::OnShowDocument( FALSE )
. İşlev ayrıca kapsayıcıya OLE öğesinin gizlendiğini bildirir. Ole öğesini gizlerken özel işlem gerçekleştirmek istiyorsanız bu işlevi geçersiz kılın.
pDataObject içeriğini kullanarak bir OLE öğesini başlatmak için çerçeve tarafından çağrılır.
virtual BOOL OnInitFromData(
COleDataObject* pDataObject,
BOOL bCreation);
pDataObject
OLE öğesini başlatmak için çeşitli biçimlerde veri içeren bir OLE veri nesnesi işaretçisi.
bCreation
bir kapsayıcı uygulaması tarafından yeni oluşturulan bir OLE öğesini başlatmak için işlev çağrılırsa TRUE. İşlev, zaten var olan bir OLE öğesinin içeriğini değiştirmek için çağrılırsa YANLIŞ.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
bCreation TRUE ise, kapsayıcı geçerli seçimi temel alarak Yeni Nesne Ekle'yi uygularsa bu işlev çağrılır. Seçilen veriler yeni OLE öğesi oluşturulurken kullanılır. Örneğin, elektronik tablo programında bir hücre aralığı seçip Yeni Nesne Ekle'yi kullanarak seçili aralıktaki değerleri temel alan bir grafik oluştururken. Varsayılan uygulama hiçbir şey yapmaz. pDataObject tarafından sunulanlardan kabul edilebilir bir biçim seçmek ve sağlanan verilere göre OLE öğesini başlatmak için bu işlevi geçersiz kılın. Bu, gelişmiş bir geçersiz kılınabilir.
Daha fazla bilgi için bkz . Windows SDK'sında IOleObject::InitFromData .
OLE öğesini yerinde değil, sunucu uygulamasının ayrı bir örneğinde görüntülemek için çerçeve tarafından çağrılır.
virtual void OnOpen();
Varsayılan uygulama, OLE öğesini içeren belgeyi görüntüleyen ilk çerçeve penceresini etkinleştirir; uygulama bir mini sunucuysa, varsayılan uygulama ana pencereyi gösterir. İşlev ayrıca ole öğesinin açıldığını kapsayıcıya bildirir.
Ole öğesini açarken özel işlem gerçekleştirmek istiyorsanız bu işlevi geçersiz kılın. Bu özellikle, açıldığında seçimi bağlantıya ayarlamak istediğiniz bağlı öğelerde yaygındır.
Daha fazla bilgi için bkz . Windows SDK'sında IOleClientSite::OnShowWindow .
Geçerli sunucu belgesindeki bağlantılı öğelerin güncel olup olmadığını belirlemek için çerçeve tarafından çağrılır.
virtual BOOL OnQueryUpdateItems();
Belgenin güncelleştirmeleri gereken öğeleri varsa sıfır olmayan; Tüm öğeler güncelse 0.
Kaynak belge değiştirildiyse ancak bağlantılı öğe belgedeki değişiklikleri yansıtacak şekilde güncelleştirilmediyse, öğe güncel değildir.
Belirtilen biçimdeki verileri almak için çerçeve tarafından çağrılır.
virtual BOOL OnRenderData(
LPFORMATETC lpFormatEtc,
LPSTGMEDIUM lpStgMedium);
lpFormatEtc
Bilgilerin istendiği biçimi belirten FORMATETC yapısına işaret eder.
lpStgMedium
Verilerin döndürülecek olduğu STGMEDIUM yapısını gösterir.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Belirtilen biçim, gecikmeli işleme için DelayRenderData veya DelayRenderFileData üye işlevi kullanılarak nesneye önceden yerleştirilmiş COleDataSource
bir biçimdir. Bu işlevin varsayılan uygulaması, sağlanan depolama ortamı bir dosya veya bellekse sırasıyla OnRenderFileData veya OnRenderGlobalData'yı çağırır. Bu biçimlerden hiçbiri sağlanmazsa, varsayılan uygulama 0 döndürür ve hiçbir şey yapmaz.
lpStgMedium-tymed> TYMED_NULL ise, STGMEDIUM lpFormatEtc-tymed> tarafından belirtilen şekilde ayrılıp doldurulmalıdır. TYMED_NULL değilse, STGMEDIUM yerine verilerle doldurulmalıdır.
Bu, gelişmiş bir geçersiz kılınabilir. Verilerinizi istenen biçimde ve ortamda sağlamak için bu işlevi geçersiz kılın. Verilerinize bağlı olarak, bunun yerine bu işlevin diğer sürümlerinden birini geçersiz kılmak isteyebilirsiniz. Verilerinizin boyutu küçükse ve sabitse, öğesini geçersiz kılın OnRenderGlobalData
. Verileriniz bir dosyadaysa veya değişken boyuttaysa, öğesini geçersiz kılın OnRenderFileData
.
Daha fazla bilgi için bkz . Windows SDK'sında IDataObject::GetData, STGMEDIUM, FORMATETC ve TYMED .
Depolama ortamı bir dosya olduğunda verileri belirtilen biçimde almak için çerçeve tarafından çağrılır.
virtual BOOL OnRenderFileData(
LPFORMATETC lpFormatEtc,
CFile* pFile);
lpFormatEtc
Bilgilerin istendiği biçimi belirten FORMATETC yapısına işaret eder.
pFile
Verilerin işlendiği nesneyi CFile
gösterir.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Belirtilen biçim, gecikmeli işleme için DelayRenderData üye işlevi kullanılarak nesneye önceden yerleştirilmiş COleDataSource
bir biçimdir. Bu işlevin varsayılan uygulaması YALNıZCA YANLIŞ döndürür.
Bu, gelişmiş bir geçersiz kılınabilir. Verilerinizi istenen biçimde ve ortamda sağlamak için bu işlevi geçersiz kılın. Verilerinize bağlı olarak, bunun yerine bu işlevin diğer sürümlerinden birini geçersiz kılmak isteyebilirsiniz. Birden çok depolama ortamı işlemek istiyorsanız, OnRenderData'yı geçersiz kılın. Verileriniz bir dosyadaysa veya değişken boyuttaysa, OnRenderFileData'yı geçersiz kılın.
Daha fazla bilgi için bkz . Windows SDK'sında IDataObject::GetData ve FORMATETC .
Belirtilen depolama ortamı genel bellek olduğunda verileri belirtilen biçimde almak için çerçeve tarafından çağrılır.
virtual BOOL OnRenderGlobalData(
LPFORMATETC lpFormatEtc,
HGLOBAL* phGlobal);
lpFormatEtc
Bilgilerin istendiği biçimi belirten FORMATETC yapısına işaret eder.
phGlobal
Verilerin döndürülacağı genel belleğe ilişkin bir tanıtıcıyı gösterir. Bellek ayrılmamışsa, bu parametre NULL olabilir.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Belirtilen biçim, gecikmeli işleme için DelayRenderData üye işlevi kullanılarak nesneye önceden yerleştirilmiş COleDataSource
bir biçimdir. Bu işlevin varsayılan uygulaması YALNıZCA YANLIŞ döndürür.
phGlobal NULL ise, phGlobal içinde yeni bir HGLOBAL ayrılıp döndürülmelidir. Aksi takdirde, phGlobal tarafından belirtilen HGLOBAL verilerle doldurulmalıdır. HGLOBAL'a yerleştirilen veri miktarı bellek bloğunun geçerli boyutunu aşmamalıdır. Ayrıca, blok daha büyük bir boyuta taşınamaz.
Bu, gelişmiş bir geçersiz kılınabilir. Verilerinizi istenen biçimde ve ortamda sağlamak için bu işlevi geçersiz kılın. Verilerinize bağlı olarak, bunun yerine bu işlevin diğer sürümlerinden birini geçersiz kılmak isteyebilirsiniz. Birden çok depolama ortamı işlemek istiyorsanız, OnRenderData'yı geçersiz kılın. Verileriniz bir dosyadaysa veya değişken boyuttaysa, OnRenderFileData'yı geçersiz kılın.
Daha fazla bilgi için bkz . Windows SDK'sında IDataObject::GetData ve FORMATETC .
OLE öğesini düzenlerken kullanılacak renk paletini belirtmek için çerçeve tarafından çağrılır.
virtual BOOL OnSetColorScheme(const LOGPALETTE* lpLogPalette);
lpLogPalette
Windows LOGPALETTE yapısının işaretçisi.
Renk paleti kullanılıyorsa sıfır olmayan; aksi takdirde 0.
Kapsayıcı uygulaması Microsoft Foundation Sınıf Kitaplığı kullanılarak yazıldıysa, ilgili COleClientItem
nesnenin IOleObject::SetColorScheme işlevi çağrıldığında bu işlev çağrılır. Varsayılan uygulama FALSE döndürür. Önerilen paleti kullanmak istiyorsanız bu işlevi geçersiz kılın. Sunucu uygulamasının önerilen paleti kullanması gerekmez.
Daha fazla bilgi için bkz . Windows SDK'sında IOleObject::SetColorScheme .
OLE öğesinin verilerini belirtilen verilerle değiştirmek için çerçeve tarafından çağrılır.
virtual BOOL OnSetData(
LPFORMATETC lpFormatEtc,
LPSTGMEDIUM lpStgMedium,
BOOL bRelease);
lpFormatEtc
Verilerin biçimini belirten FORMATETC yapısının işaretçisi.
lpStgMedium
Verilerin bulunduğu STGMEDIUM yapısının işaretçisi.
bRelease
İşlev çağrısını tamamladıktan sonra depolama ortamı sahipliğini kimlerin olduğunu gösterir. Arayan, depolama ortamı adına ayrılan kaynakların serbest bırakılmasından kimin sorumlu olduğuna karar verir. Çağıran, bRelease ayarını yaparak bunu yapar. bRelease sıfır değilse, sunucu öğesi sahipliği alır ve kullanımı bittiğinde ortamı boşaltır. bRelease 0 olduğunda, çağıran sahipliği korur ve sunucu öğesi depolama medyasını yalnızca çağrı süresi boyunca kullanabilir.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Sunucu öğesi, verileri başarıyla elde edene kadar verilerin sahipliğini almaz. Yani, 0 döndürürse sahipliği almaz. Veri kaynağı sahipliği alırsa ReleaseStgMedium işlevini çağırarak depolama medyasını serbest bırakır.
Varsayılan uygulama hiçbir şey yapmaz. OLE öğesinin verilerini belirtilen verilerle değiştirmek için bu işlevi geçersiz kılın. Bu, gelişmiş bir geçersiz kılınabilir.
Daha fazla bilgi için bkz . Windows SDK'sında STGMEDIUM, FORMATETC ve ReleaseStgMedium .
Ole öğesine kapsayıcı belgesinde ne kadar boş alan olduğunu bildirmek için çerçeve tarafından çağrılır.
virtual BOOL OnSetExtent(
DVASPECT nDrawAspect,
const CSize& size);
nDrawAspect
Sınırları belirtilen OLE öğesinin yönünü belirtir. Bu parametre aşağıdaki değerlerden herhangi 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.
boyut
OLE öğesinin yeni boyutunu belirten bir CSize yapısı.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Kapsayıcı uygulaması Microsoft Foundation Sınıf Kitaplığı ile yazılmışsa, ilgili COleClientItem
nesnenin SetExtent üye işlevi çağrıldığında bu işlev çağrılır. Varsayılan uygulama, nDrawAspect DVASPECT_CONTENT ise m_sizeExtent üyeyi belirtilen boyuta ayarlar; aksi takdirde 0 döndürür. Öğenin boyutunu değiştirdiğinizde özel işlem gerçekleştirmek için bu işlevi geçersiz kılın.
Sunucu uygulamasına OLE öğesini yerinde görüntülemesini bildirmek için çerçeve tarafından çağrılır.
virtual void OnShow();
Bu işlev genellikle kapsayıcı uygulamasının kullanıcısı bir öğe oluşturduğunda veya öğenin gösterilmesini gerektiren Düzenle gibi bir fiil yürüttüğünde çağrılır. Varsayılan uygulama yerinde etkinleştirmeyi dener. Bu başarısız olursa işlev, OLE öğesini ayrı bir pencerede görüntülemek için üye işlevini çağırır OnOpen
.
Bir OLE öğesi gösterildiğinde özel işlem gerçekleştirmek istiyorsanız bu işlevi geçersiz kılın.
Bir öğe değiştirildiğinde çerçeve tarafından çağrılır.
virtual void OnUpdate(
COleServerItem* pSender,
LPARAM lHint,
CObject* pHint,
DVASPECT nDrawAspect);
pSender
Belgeyi değiştiren öğenin işaretçisi. NULL olabilir.
lHint
Değişiklik hakkında bilgi içerir.
pHint
Değişiklikle ilgili bilgileri depolayarak nesne işaretçisi.
nDrawAspect
DVASPECT numaralandırmasından bir değer. Bu parametre aşağıdaki değerlerden herhangi 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.
Varsayılan uygulama, ipucundan veya gönderenden bağımsız olarak NotifyChanged'i çağırır.
Sunucu belgesindeki tüm öğeleri güncelleştirmek için çerçeve tarafından çağrılır.
virtual void OnUpdateItems();
Varsayılan uygulama, belgedeki tüm COleClientItem
nesneler için UpdateLink'i çağırır.
Adını ayarlamak için bağlı bir öğe oluşturduğunuzda bu işlevi çağırabilirsiniz.
void SetItemName(LPCTSTR lpszItemName);
lpszItemName
Öğenin yeni adına işaret eden işaretçi.
Adın belge içinde benzersiz olması gerekir. Bağlı bir öğeyi düzenlemek için bir sunucu uygulaması çağrıldığında, uygulama öğeyi bulmak için bu adı kullanır. Katıştırılmış öğeler için bu işlevi çağırmanız gerekmez.
MFC Örnek HIERSVR
CDocItem Sınıfı
Hiyerarşi Grafiği
COleClientItem Sınıfı
COleServerDoc Sınıfı
COleTemplateServer Sınıfı