共用方式為


資料物件和資料來源: 操作

建立資料物件或資料來源之後,您可以執行一些常見的作業上的資料,例如插入和移除資料、 列舉資料的格式及其他。 本文將說明完成大多數作業所需的技巧。 主題包括:

  • 將資料插入至資料來源

  • 決定所提供的資料物件中的格式

  • 從資料物件擷取資料

將資料插入至資料來源

資料插入資料來源的方式取決於資料是否立即提供或者視情況下,並以何種媒體會提供。 可能性如下所示。

9s5z33c4.collapse_all(zh-tw,VS.110).gif立即提供資料 (立即轉譯)

  • 呼叫COleDataSource::CacheGlobalData重複地為您提供資料的每一種剪貼簿格式。 將剪貼簿格式,才能使用,包含資料的記憶體的控制代碼,並選擇性地 FORMATETC 結構描述資料。

    -或-

  • 如果您想要直接使用 STGMEDIUM 結構,呼叫COleDataSource::CacheData而不是COleDataSource::CacheGlobalData在上述選項。

9s5z33c4.collapse_all(zh-tw,VS.110).gif提供的資料 (延遲轉譯)

這是進階的主題。

  • 呼叫COleDataSource::DelayRenderData重複地為您提供資料的每一種剪貼簿格式。 傳遞要使用的剪貼簿格式,並選擇性地 FORMATETC 結構描述的資料。 當要求資料時,架構會呼叫COleDataSource::OnRenderData,您必須覆寫。

    -或-

  • 如果您使用CFile物件,以便提供資料時,呼叫COleDataSource::DelayRenderFileData而不是COleDataSource::DelayRenderData在上一個選項。 當要求資料時,架構會呼叫COleDataSource::OnRenderFileData,您必須覆寫。

決定所提供的資料物件中的格式

應用程式可讓使用者貼上資料之前,它需要知道它可以處理的剪貼簿上是否有格式。 若要這樣做,您的應用程式應該執行下列作業:

  1. 建立COleDataObject物件,並 FORMATETC 結構。

  2. 呼叫資料物件的AttachClipboard成員函式來將資料物件與剪貼簿上的資料相關聯。

  3. 執行下列任一步驟:

    • 呼叫資料物件的IsDataAvailable成員函式如果只有一個或是兩個格式化您的需要。 這會節省您的時間情況下,[剪貼簿] 上的資料支援格式遠多於您的應用程式中。

      -或-

    • 呼叫資料物件的BeginEnumFormats成員函式,若要開始列舉所提供的 [剪貼簿] 的格式。 然後呼叫GetNextFormat直到傳回 [剪貼簿] 的格式應用程式支援或有沒有更多的格式。

如果您使用ON_UPDATE_COMMAND_UI,您現在可以啟用貼上和,可能是,在 [編輯] 功能表上的選擇性貼上項目。 若要這樣做,請呼叫其中一個CMenu::EnableMenuItemCCmdUI::Enable。 如需有關哪個容器應用程式應該如何處理功能表項目和時間,請參閱功能表和資源: 容器加入

從資料物件擷取資料

一旦您決定資料格式,就要從資料物件擷取資料。 若要執行這項操作,使用者會決定資料中,放置處,應用程式會呼叫適當的函式。 資料會是其中一個可用的下列媒體:

若要呼叫的函式

全域記憶體 (HGLOBAL)

COleDataObject::GetGlobalData

File (CFile)

COleDataObject::GetFileData

STGMEDIUM 結構 (IStorage)

COleDataObject::GetData

一般來說,媒體將會指定連同它的剪貼簿格式。 例如, CF_EMBEDDEDSTRUCT 物件會永遠在IStorage需要中度 STGMEDIUM 結構。 因此,您可以使用GetData因為它是可以接受這些函式的唯一地 STGMEDIUM 結構。

情況下,剪貼簿檔案格式中的IStreamHGLOBAL的架構可以提供中級, CFile參照該資料的指標。 應用程式就可以使用讀取的檔案來取得資料太多相同的方式,因為它可能會從檔案匯入資料。 基本上,這種用戶端介面,以OnRenderDataOnRenderFileData的資料來源中的常式。

使用者可以現在就像任何其他資料相同的格式將資料插入文件一樣。

9s5z33c4.collapse_all(zh-tw,VS.110).gif您還想知道關於哪些方面的詳細資訊?

請參閱

參考

COleDataObject 類別

COleDataSource 類別

概念

資料物件和資料來源 (OLE)