SetConvertStg 函式 (ole2.h)

SetConvertStg 函式會設定儲存物件中的轉換位,表示對象在開啟時要轉換成新類別。 您可以透過呼叫 GetConvertStg 函式來擷取設定。

語法

HRESULT SetConvertStg(
  LPSTORAGE pStg,
  BOOL      fConvert
);

參數

pStg

要在其中設定轉換位之記憶體物件的 IStorage 指標。

fConvert

如果為 TRUE,請設定 物件的轉換位,以指出開啟時要轉換物件。 如果為 FALSE,則會清除轉換位。

傳回值

如需可能的記憶體和串流存取錯誤,請參閱 IStorage::CreateStreamIStorage::OpenStreamISequentialStream::ReadISequentialStream::Write 方法。

備註

SetConvertStg 函式會決定自主物件中轉換位的狀態。 容器應用程式和伺服器在將物件從一個類別轉換成另一個類別的過程中呼叫。 當使用者透過 [轉換至 ] 對話框 (容器產生,而容器會呼叫 OleUIConvert 函式) 要轉換物件時,容器必須採取下列步驟:

  1. 如果目前已載入物件,請卸除物件。
  2. 呼叫 WriteClassStg ,將新的 CLSID 寫入物件記憶體。
  3. 呼叫 WriteFmtUserTypeStg ,將新的使用者類型名稱和現有的主要格式寫入記憶體。
  4. 呼叫 SetConvertStg 並將 fConvert 參數設定為 TRUE ,表示物件在下次載入時已標記轉換成新類別。
  5. 在載入物件之前,請呼叫 OleDoAutoConvert 來處理任何所需的物件轉換,除非您呼叫 內部呼叫 OleLoad
從記憶體物件初始化物件,而伺服器是轉換作業的目的地時,物件伺服器應該執行下列動作:
  1. 呼叫 GetConvertStg 函式以擷取轉換位的值。
  2. 如果設定位,伺服器會根據與新CLSID相關聯的格式,從物件中讀取數據。
  3. 當要求物件自行儲存時,對象應該使用物件的一般原生格式和使用者類型來呼叫 WriteFmtUserTypeStg 函式。
  4. 然後,對象應該呼叫 SetConvertStg並將 fConvert 參數設定為 FALSE ,以重設物件的轉換位。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 ole2.h
程式庫 Ole32.lib
Dll Ole32.dll

另請參閱

GetConvertStg