Dsofile.dll 檔案可讓您編輯 Office 文件屬性,當您沒有安裝 Office 時

文章翻譯 文章翻譯
文章編號: 224351 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

Dsofile.dll 範例檔案是使用 Microsoft Visual Basic.NET 或 Microsoft.NET Framework 的程式設計人員的同處理序 ActiveX 元件。您可以使用這個自訂應用程式中讀取,並編輯下列] 之類的 Microsoft Office 檔案相關聯的 OLE 文件屬性:
  • Microsoft Excel 活頁簿
  • Microsoft PowerPoint 簡報
  • Microsoft Word 文件
  • Microsoft Project 專案
  • Microsoft Visio 繪圖
  • OLE 結構化儲存體格式儲存其他檔案
Microsoft Visual C++ 中寫入 Dsofile.dll 範例檔案。 Dsofile.dll 範例檔會示範如何使用 OLE32 IPropertyStorage 介面來存取 OLE 結構化儲存體檔案的擴充的屬性。元件會將資料轉換成更容易使用的程式設計語言 (例如 Visual Basic 6.0、 Visual Basic.NET 和 C# 的高層級的自動化易記的資料型別。 Dsofile.dll 範例檔案設定有完整的原始程式碼,並包括以 Visual Basic 6.0 和 Visual Basic.NET 2003 (7.1) 撰寫的範例用戶端。

其他相關資訊

下載範例 ActiveX 元件

從 「 Microsoft 下載中心 」 下載下列檔案有:
摺疊此圖像展開此圖像
Download
Download the DsoFileSetup_KB224351_x86.exe package now.
您有一個無版稅的使用、 修改、 重現,以及權限散發 Dsofile.dll 範例檔案元件和 C + + 原始程式檔,以任何方式對您有用。這是假設貴用戶同意 Microsoft 有無瑕疵責任擔保、 沒有義務及沒有責任,他們用於或內所提供的資訊。僅供教育免付費的且被視為一個範例,提供元件和來源的程式碼。如果您想要在實際執行解決方案中使用該元件或任一部份或是其他,您就必須負責檢閱修改的對於測試,和支援元件自己。

警告[Dsofile.dll]、 [來源] 程式碼] 和 [關聯的範例提供 「 現狀 」,不任何種類,明示或默示的保證,包括但不是限於適售性以及適合某特定用途之默示擔保責任擔保。 您必須承擔使用自己的風險。

附註讀取,並使用這個範例來編輯 Office 2007 文件,您必須安裝 Office 2007 相容性套件。如需詳細資訊請參閱 < 資源 > 一節。

OLE 文件屬性的相關資訊

每個 OLE 的複合文件可以將文件的相關額外資訊儲存在永續性的屬性集。這些通稱為 「 文件摘要屬性。這些屬性集是由 「 COM/OLE 」 來管理的協力廠商的用戶端可以讀取協助沒有此資訊主要是負責該檔案的應用程式。

為了興趣閱讀文件屬性的開發人員我們提供下列兩個介面來管理的屬性集:
  • IPropertySetStorage
  • IPropertyStorage
不過,某些高階的程式設計語言,可能會出使用這些介面,因為在介面並不是 Automation 相容的問題。如果要解決這個問題,開發人員可以使用 ActiveX DLL,這類"DsoFile 範例"讀取,並在 OLE 的複合文件中撰寫最常使用的內容。這會套用尤其是那些由 Microsoft Office 應用程式使用。

使用自訂的應用程式從 DsoFile 元件

Dsofile.dll 範例檔案讀取,並將任何 「 OLE 結構化存放 」 檔案中寫入標準的屬性和自訂的屬性。這包括,但不限於:
  • Word 文件
  • Excel 活頁簿
  • PowerPoint 簡報
由於的大小和 Dsofile.dll 範例檔案的速度,DLL 可以更有效率,比嘗試自動化 Office 讀取文件內容。

使用元件,請將是 [Dsofile 型別程式庫的參考名為"DSO OLE 文件內容讀者 2.1"。元件可以用於呼叫晚期和早期繫結的呼叫。 Dsofile.dll 範例檔都有可以建立的只有一個物件。該物件被命名為 DSOFile.OleDocumentPropertiesDSOFile.OleDocumentProperties 物件提供的檔案,來使用 Open 方法載入 OLE 文件屬性的存取。閱讀中的所有屬性,而且在開啟快取。所有的屬性就可以供透過 OleDocumentProperties 物件進行編輯。屬性是只寫回檔案當您呼叫 儲存。當您完成編輯檔案呼叫 Close 來釋放該檔案鎖定。

可從 SummaryProperties 屬性取得標準的 OLE 屬性和標準的 Office 摘要內容。自訂屬性會列在 CustomProperties 集合中。每個自訂屬性都有唯一的名稱。存取該名稱的集合中每個自訂屬性。您可以新增或移除個別的屬性。而且,您可以在 Visual Basic.NET 中使用"For Each"語法來列舉瀏覽整個集合。

在呼叫 開啟] 方法時,名為 Dsofile OleDocumentProperties 物件會嘗試開啟文件以供讀取存取權和寫入存取。如果在標示為唯讀檔案,或該檔案位於 NTFS 共用資源的僅提供讀取存取呼叫可能會失敗。您可能會收到下列錯誤訊息:
錯誤 70: 拒絕的權限
如果想開啟檔案進行讀取權限只傳遞 TrueReadOnly 參數上 Open 方法。此外,您可以傳遞 dsoOptionOpenReadOnlyIfNoWriteAccess 旗標,如果您想要嘗試開啟檔案進行編輯 Dsofile。 不過,如果 Dsofile 不能存取,因為檔案是唯讀或被另一個處理序鎖定,開啟唯讀複本。然後,您可以驗證是否開啟文件時唯讀使用 IsReadOnly 屬性。

一旦屬性已經變更或修改,您可以使用 IsDirty 屬性來驗證屬性集是否有儲存。所做的變更不會寫入該檔案 儲存 被呼叫前。如果您不會呼叫 儲存,您所做的變更會遺失上 關閉

除了標準的自動化錯誤訊息 Dsofile 可以傳回下列的自訂錯誤訊息之一發生錯誤時:
錯誤-2147217151 (& H80041101): 您必須開啟文件可以執行所要求的動作。
錯誤-2147217150 (& H80041102): 您必須開啟一個新在同一個物件之前,請先關閉目前的文件。
錯誤-2147217149 (& H80041103): 文件的另一個程式正在使用,而且無法開啟為讀寫存取。
錯誤-2147217148 (& H80041104): 文件不是一個 OLE] 檔案,且不支援擴充的文件內容。
錯誤-2147217147 (& H80041105): 這個命令不能使用,因為在唯讀模式中已開啟的文件。
錯誤-2147217146 (& H80041106): 此指令以 OLE 結構化儲存體檔案只可以了。
錯誤-2147217145 (& H80041107): 物件未連接到文件 (已移除或關閉文件)。
錯誤-2147217144 (& H80041108): 無法存取屬性,因為它屬於的組不存在。
錯誤-2147217143 (& H80041109): 要求的屬性不存在集合中。
錯誤-2147217142 (& H8004110A): 依該名稱的項目已經存在於集合中。

Unicode 的屬性集

OLE 屬性集可以將儲存字串,在任一個 Unicode 格式或指定的字碼頁的 Multi-Byte 字元字串 (MBCS) 格式。 Dsofile 可以讀取和寫入至任一類型的屬性集。預設情況下,Dsofile 選取 Unicode Dsofile 會建立新集合例如將屬性加入至檔案時有無。視 Dsofile 使用 MBCS 格式的字串來建立組 dsoOptionUseMBCStringsForNewSets 旗標可以傳入 Open 方法。

因為現有的屬性集可能會使用 MBCS 格式,Dsofile 有將字串儲存在相同的格式儲存。如果嘗試新增字串無法對應至屬性集的字碼頁,則作業可能失敗。因此,限制您知道存在造成檔案系統的字碼頁中的字元的字串。或者,請確定所有的屬性集是 Unicode 格式之前編輯這些屬性。

附註Dsofile 並不會轉換一個現有的 MBCS 屬性設定為 Unicode。您必須修改範例,如果您想要新增這項能力。

設定及測試 DLL 的步驟

自動解壓縮安裝程式會安裝並 DsoFile.dll 元件登錄在您想要的位置。 兩個 Visual Basic.NET 測試應用程式示範如何使用元件和所有原始程式碼,也會安裝可自動解壓縮安裝程式。

如果您移動 DLL,到另一個位置或另一部電腦,您必須重新登錄 DLL,才能再次使用。如果要執行這項操作,輸入 regsvr32 [filepath]\dsofile.dll 在 [執行] 對話方塊在 [開始] 功能表上。

若要執行範例,請依照下列步驟執行:

如需 Visual 的基本 6.0 示範

  1. 開啟 Visual Basic 6.0 範例專案,它的名稱,如下所示:

    .\Source\Vb6Demo\PropDemo.vbp
  2. 請確定 Dsofile.dll 已被正確地參照。若要這樣做,選取 [專案] 功能表上的 [參考]。請確認是否為 DSO OLE 文件內容讀取器 2.1 設定的參考。
  3. 請按 F5 執行專案。
  4. 當提示您開啟複合文件檔案時,選取適當的檔案,並注意其文件] 屬性會出現。

針對 Visual Basic 2003 (7.1) 或 Visual Basic 2005 (8.0) 示範

  1. 開啟 Visual Basic 7.1 專案,它的名稱,如下所示:

    .\Source\Vb7Demo\FilePropDemoVB7.sln

    您可以在任一 Visual Basic 7.1 或在 Visual Studio 2005 中的 Visual Basic 8.0 中 Visual Studio.NET 2003年中開啟這個專案。
  2. 如果提示您會自動將方案轉換為 8.0 格式,按一下 [是],並遵循精靈來轉換專案。
  3. 請按 F5 編譯並執行 Visual Basic 專案。
  4. 出現表單,按一下 [開啟舊檔]。
  5. 選取適當的 Office 檔案,然後按一下 [確定]

    請注意 Office 檔案的文件內容] 對話方塊中會出現。 您可以編輯文件屬性。

?考

讀取和編輯 Microsoft Office 2007 檔案的文件屬性,如果您同時安裝 Office 2007 相容性套件,Dsofile.dll 元件已被更新。若要下載並安裝相容性套件,請造訪下列 Microsoft 網站:
http://www.microsoft.com/downloads/details.aspx?FamilyID=941b3470-3ae9-4aee-8f43-c6bb74cd1466
如需有關如何從 Visual C++ 讀取文件屬性的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
186898如何讀取直接與 VC + + 的複合文件屬性

屬性

文章編號: 224351 - 上次校閱: 2007年6月13日 - 版次: 9.3
這篇文章中的資訊適用於:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Studio 6.0 Enterprise Edition
  • Microsoft Office Excel 2007
  • Microsoft Office PowerPoint 2007
  • Microsoft Office Word 2007
  • Microsoft Office Visio Professional 2007
  • Microsoft Office Excel 2003
  • Microsoft Office PowerPoint 2003
  • Microsoft Office Word 2003
  • Microsoft Office Visio Professional 2003
  • Microsoft Office Project Professional 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft Word 2002 Standard Edition
  • Microsoft Visio 2002 Professional Edition
  • Microsoft Project 2002 Standard Edition
關鍵字:?
kbmt kbdownload kbautomation kbfile kbinfo kbpersistst KB224351 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:224351
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com