共用方式為


IDL 屬性

傳統上,維護 .idl 檔案表示您必須:

  • 請熟悉 .idl 檔案的結構和語法,以修改它。

  • 依賴精靈,這可讓您修改 .idl 檔案的某些層面。

現在,您可以使用 Visual C++ IDL 屬性,從原始程式碼檔案內修改 .idl 檔案。 在許多情況下,Visual C++ IDL 屬性的名稱與 MIDL 屬性相同。 當 Visual C++ IDL 屬性和 MIDL 屬性的名稱相同時,這表示將 Visual C++ 屬性放在原始程式碼檔中,將會產生包含其名稱為 MIDL 屬性的 .idl 檔案。 不過,Visual C++ IDL 屬性可能無法提供 MIDL 屬性的所有功能。

當未搭配 COM 屬性使用時,IDL 屬性可讓您定義介面。 編譯原始程式碼時,會使用 屬性來定義產生的 .idl 檔案。 與 ATL 專案中的 COM 屬性搭配使用時,某些 IDL 屬性,例如 coclass,會導致程式代碼插入專案中。

請注意, idl_quote 可讓您使用目前Visual C++ 版本中不支援的 MIDL 建構。 此屬性和其他屬性,例如 importlib 和 includelib,可協助您在目前的 Visual Studio C++ 專案中使用現有的 .idl 檔案。

屬性 描述
aggregatable 表示控件可由另一個控件匯總。
appobject 將 coclass 識別為與完整 EXE 應用程式相關聯的應用程式物件,並指出 coclass 的函式和屬性可在此類型連結庫中全域使用。
async_uuid 指定 UUID,指示 MIDL 編譯程式同時定義 COM 介面的同步和異步版本。
bindable 表示支援資料繫結的屬性。
call_as 可讓非遠端函式對應至遠端函式。
case 與等位中的 switch_type 屬性搭配使用。
coclass 將類別定義放入 .idl 檔案中做為coclass。
control 指定使用者定義型別為控制件。
cpp_quote 在產生的頭檔中發出指定的字串,不含引號字元。
defaultbind 表示最能代表物件的單一可系結屬性。
defaultcollelem 用於 Visual Basic 程式代碼優化。
defaultvalue 允許指定具型別選擇性參數的預設值。
預設值 表示 coclass 內定義的自訂或 dispinterface,用以代表預設可程式性介面。
defaultvtable 將介面定義為控件的預設 vtable 介面。
dispinterface 將介面放入 .idl 檔案中作為分派介面。
displaybind 指出應該向用戶顯示為可系結的屬性。
dual 將介面放在 .idl 檔案中做為雙重介面。
entry 藉由識別 DLL 中的進入點,指定模組中導出的函式或常數。
first_is 指定要傳輸之第一個陣列專案的索引。
helpcontext 指定內容識別碼,讓使用者在說明檔中檢視這個專案的相關信息。
helpfile 設定類型庫的說明檔名稱。
helpstringcontext 指定 .hlp 或 .chm 檔案中說明主題的標識符。
helpstringdll 指定要用來執行檔字串查閱的 DLL 名稱(當地語系化)。
helpstring 指定用來描述所套用之項目的字元字串。
hidden 指出專案存在,但不應該顯示在用戶導向的瀏覽器中。
idl_module 指定 DLL 中的進入點。
idl_quote 可讓您使用目前版本的 Visual C++不支援的屬性或 IDL 建構。
id 指定成員函式的 DISPID(在介面或 dispinterface 中為屬性或方法)。
iid_is 指定介面指標所指向之 COM 介面的 IID。
immediatebind 表示資料庫會立即收到數據系結物件屬性之所有變更的通知。
importlib 讓已編譯成其他類型程式庫的類型可供正在建立的類型程式庫使用。
import 指定另一個 .idl、.odl 或頭檔,其中包含您想要從主要 .idl 檔案參考的定義。
include 指定要包含在產生的 .idl 檔案中的一或多個頭檔。
includelib 將 .idl 或 .h 檔案包含在產生的 .idl 檔案中。
表示參數要從呼叫程式傳遞至呼叫的程式。
last_is 指定要傳輸之最後一個陣列專案的索引。
lcid 可讓您將地區設定識別碼傳遞至函式。
length_is 指定要傳輸的陣列項目數目。
licensed 表示其套用的coclass已獲授權,且必須使用具現化 IClassFactory2
local 可讓您在介面標頭中使用 MIDL 編譯程式作為標頭產生器。 在個別函式中使用時,指定不會產生存根的本機程式。
max_is 指定有效陣列索引的最大值。
module 在 .idl 檔案中定義程式庫區塊。
ms_union 控制非擷取聯集的網路數據表示對齊方式。
no_injected_text 防止編譯程式因為使用屬性而插入程序代碼。
nonbrowsable 表示介面成員不應該顯示在屬性瀏覽器中。
noncreatable 定義無法自行具現化的物件。
nonextensible 指定實作 IDispatch 只包含介面描述中所列的屬性和方法,而且無法在運行時間與其他成員一起擴充。
object 識別自定義介面;與自定義屬性同義。
odl 將介面識別為物件描述語言 (ODL) 介面。
oleautomation 表示介面與自動化相容。
optional 指定成員函式的選擇性參數。
out 識別從被呼叫程序傳回至呼叫程序的指標參數 (從伺服器至用戶端)。
pointer_default 指定所有指標的預設指標屬性,但出現在參數清單中的最上層指標除外。
pragma 在產生的 .idl 檔案中發出指定的字串,不含引號字元。
progid 指定 COM 物件的 ProgID。
propget 指定屬性存取子 (get) 函式。
propputref 指定使用參考而非值的屬性設定函式。
propput 指定屬性設定函式。
ptr 將指標指定為完整指標。
public 確保 typedef 會進入類型連結庫,即使它未從 .idl 檔案中參考。
range 指定在運行時間設定其值之自變數或欄位的允許值範圍。
readonly 禁止指派給變數。
ref 識別參考指標。
requestedit 表示屬性支援 OnRequestEdit 通知。
restricted 指定無法任意呼叫模組、介面或 dispinterface 的連結庫或成員。
retval 指定接收成員傳回值的參數。
size_is 指定配置給大小指標的記憶體大小、大小指標到大小指標,以及單一或多維度陣列。
source 表示類別、屬性或方法的成員是事件的來源。
string 表示一維 charwchar_tbyte或對等陣列或這類陣列的指標必須視為字串。
switch_is 指定表達式或標識碼,做為選取等位成員的等位辨別器。
switch_type 識別做為等位辨識項的變數類型。
transmit_as 指示編譯程式將呈現的類型與傳輸類型產生關聯,讓用戶端和伺服器應用程式操作的類型產生關聯。
uidefault 表示類型資訊成員是使用者介面中顯示的預設成員。
unique 指定唯一指標。
usesgetlasterror 告訴呼叫端,如果呼叫該函式時發生錯誤,則呼叫端可以呼叫 GetLastError 以擷取錯誤碼。
uuid 指定類別或介面的唯一標識碼。
v1_enum 指示指定的列舉型別會以 32 位實體的形式傳輸,而不是 16 位預設值。
vararg 指定函式接受變數數目的自變數。
vi_progid 指定與版本無關的 ProgID 形式。
wire_marshal 指定將用於傳輸的數據類型,而不是應用程式特定的數據類型。

另請參閱

依群組分類的屬性