OLE項可以嵌入或者是連結到複合文檔中。當嵌入時,它作為複合文檔的一部分進行存儲。如果是連結的,數據存儲在由伺服器套用建立的分離的檔案中,而僅把指向它的一個連結存到複合文檔中。所有的OLE項包含有說明被調用來編輯它們的伺服器套用的信息。
COleClientItem定義了一些可重載的函式,用以回響從伺服器套用發出的請求;它們以通知的形式發生作用。這使得伺服器套用能將用戶編輯OLE項所作的修改通知包容器,或在用戶編輯的同時獲取相關的信息。COleClientItem能同 COleDocument, COleLinkingDoc或COleServerDoc等類一起使用。使用COleClientItem時, 從COleClientItem 派生一個類,執行OnChange成員函式,定義怎樣將對項的修改通知包容器。若要支持就地激活的功能,得重載OnGetItemPosition 成員函式。該函式提供了OLE項的顯示位置的有關信息。
注意:
OLE文檔中,“對象(objects)”指的是嵌入或連結項本身;而“類(classes)”則指的是項的類型。
#include
COleClientItem成員函式
構造函式
COleClientItem | 構造一個COleClientItem對象 |
創建
CreateFromClipboard | 從剪貼簿中創建一個嵌入項 |
CreateFromData | 從一個數據對象創建一個嵌入項 |
CanCreateFromData | 指示一個包容器套用是否能創建一個嵌入對象 |
CreateFromFile | 從一個檔案創建一個嵌入項 |
CreateStaticFromClipboard | 從剪貼簿創建一個靜態項 |
CreateStaticFromData | 從一個數據對象創建一個靜態項 |
CreateLinkFromClipboard | 從剪貼簿創建一個連結項 |
CreateLinkFromData | 從一個數據對象創建一個連結項 |
CanCreateLinkFromData | 指示一個包容器套用是否能創建一個嵌入對象 |
CreateLinkFromFile | 從一個檔案創建一個連結項 |
CreateNewItem | 啟動伺服器套用創建一個新的嵌入項 |
CreateCloneFrom | 創建一個已經存在的項的拷貝 |
狀態
GetLastStatus | 返回上一次OLE操作的狀態 |
GetIconFromRegistry | 檢索與特定CLSID伺服器相關的圖示的句柄 |
gettype | 返回OLE項的類型(嵌入、連結或靜態) |
GetExtent | 返回OLE項的矩形邊界 |
GetCachedExtent | 返回OLE項的矩形邊界 |
GetClassID | 獲取給定項的類標識 |
GetUserType | 獲取描述項類型的字元串 |
GetIconicMetafile | 獲取用以描繪項的圖示的元檔案 |
SetIconicMetafile | 將用以描繪項的圖示的元檔案存入快取 |
GetDrawAspect | 獲取顯示項的當前視圖 |
SetDrawAspect | 設定顯示項的當前視圖 |
GetItemState | 獲取項的當前狀態 |
GetActiveView | 獲取項被就地激活的視圖 |
IsModified | 如果項在上次保存後被修改了,則返回TRUE |
IsRunning | 如果項的伺服器套用正在運行,則返回TRUE |
IsInPlaceActive | 如果項處於就地激活狀態,則返回TRUE |
IsOpen | 如果項在伺服器套用中處於打開狀態,則返回TRUE |
數據存取
GetDocument | 返回包含給定項的COleDocument對象 |
AttachDataObject | 存取OLE對象中的數據 |
對象轉換
ConvertTo | 轉換項到另一類型 |
ActivateAs | 激活項為另一類型 |
Reload | 在調用ActivateAs後重載項 |
剪貼簿操作
CanPaste | 指示剪貼簿中是否包含有可重載或靜態的OLE項 |
CanPasteLink | 指示剪貼簿中是否包含有可連結的OLE項 |
DoDragDrop | 執行一次拖放操作 |
CopyToClipboard | 將OLE項複製到剪貼簿中 |
GetClipboardData | 獲取剪貼簿中的數據。這些數據可能是調用CopyToClipboard成員函式後放置在剪貼簿中的 |
一般操作
激活
Activate | 打開OLE項進行操作,並執行指定的動作 |
DoVerb | 執行指定動作 |
deactivate | 釋放激活項 |
DeactivateUI | 恢復包容器套用的用戶界面到初始狀態 |
ReactivateAndUndo | 重新激活項,並撤消上次的就地編輯操作 |
SetItemRects | 設定項的矩形邊界 |
GetInPlaceWindow | 返回項的就地編輯視窗的指針 |
嵌入對象操作
SetHostNames | 編輯OLE項,設定伺服器顯示的名字 |
SetExtent | 設定OLE項的邊界矩形 |
連結對象操作和狀態
GetLinkUpdateOptions | 返回連結項的更新模式 (高級特性) |
SetLinkUpdateOptions | 設定連結項的更新模式 (高級特性) |
UpdateLink | 更新項的描述快取 |
IsLinkUpToDate | 如果一個連結項和它的資源文檔是最新的,則返回TRUE |
重載函式
OnChange | 伺服器改變OLE項時調用。要求重實現 |
OnGetClipboardData | 框架調用以獲取複製到剪貼簿的數據 |
OnInsertMenus | 框架調用以創建一個混合選單條 |
OnSetMenu | 框架調用以安裝和刪除一個混合選單 |
OnRemoveMenus | 框架調用以從一個混合選單中刪除包容器選單 |
OnUpdateFrameTitle | 框架調用以更新框架視窗的標題欄 |
OnShowControlBars | 框架調用以顯示或隱藏控制項條 |
OnGetItemPosition | 框架調用以項的相對視圖的位置 |
OnScrollBy | 框架調用以滾動項到視圖內 |
OnDeactivateUI | 當伺服器刪除用戶界面時,由框架調用 |
OnDiscardUndoState | 框架調用以丟棄項的撤消操作狀態信息 |
OnDeactivateAndUndo | 框架調用以在激活後進行撤消操作 |
OnShowItem | 框架調用以顯示OLE項 |
CanActivate | 框架調用以判定是否允許就地激活 |
OnActivate | 框架調用以通知已經激活的項 |
OnActivateUI | 框架調用以通知已經激活的並且需要顯示用戶界面的項 |
OnGetClipRect | 框架調用以取得項的剪下矩形坐標 |
OnGetWindowContext | 當項就地激活時,由框架調用 |
OnDeactivate | 當項取消時,由框架調用 |
OnChangeItemPosition | 當項位置改變時,由框架調用 |