IDL – atributy
Tradiční údržba souboru .idl znamenala, že jste museli:
Seznamte se se strukturou a syntaxí souboru .idl, abyste ho mohli upravit.
Spoléhat se na průvodce, který by vám umožnil upravit některé aspekty souboru .idl.
Teď můžete upravit soubor .idl ze souboru zdrojového kódu pomocí atributů IDL jazyka Visual C++. V mnoha případech mají atributy IDL jazyka Visual C++ stejný název jako atributy MIDL. Pokud je název atributu IDL jazyka Visual C++ a atribut MIDL stejný, znamená to, že umístění atributu Visual C++ do souboru zdrojového kódu způsobí soubor .idl, který obsahuje jeho atribut nameake MIDL. Atribut IDL jazyka Visual C++ však nemusí poskytovat všechny funkce atributu MIDL.
Při použití s atributy modelu COM umožňují atributy IDL definovat rozhraní. Při kompilaci zdrojového kódu se atributy používají k definování vygenerovaného souboru .idl. Při použití s atributy MODELU COM v projektu ATL některé atributy IDL, například coclass
, způsobit vložení kódu do projektu.
Všimněte si, že idl_quote umožňuje používat konstrukty MIDL, které nejsou podporovány v aktuální verzi Visual C++. Tyto a další atributy, jako je importlib a includelib , vám pomůžou používat existující soubory .idl v aktuálním projektu visual Studio C++.
Atribut | Popis |
---|---|
aggregatable | Označuje, že ovládací prvek lze agregovat jiným ovládacím prvku. |
appobject | Identifikuje třídu coclass jako objekt aplikace, který je přidružen k úplné aplikaci EXE, a označuje, že funkce a vlastnosti třídy coclass jsou globálně dostupné v této knihovně typů. |
async_uuid | Určuje UUID, který směruje kompilátor MIDL tak, aby definoval synchronní i asynchronní verze rozhraní MODELU COM. |
bindable | Označuje, že vlastnost podporuje datové vazby. |
call_as | Umožňuje namapovat neremotable funkci na vzdálenou funkci. |
case | Používá se s atributem switch_type ve sjednocení. |
coclass | Umístí definici třídy do souboru .idl jako třídy coclass. |
control | Určuje, že uživatelem definovaný typ je ovládací prvek. |
cpp_quote | Vygeneruje zadaný řetězec bez znaků uvozovek do vygenerovaného hlavičkového souboru. |
defaultbind | Označuje jednu, bindable vlastnost, která nejlépe představuje objekt. |
defaultcollelem | Používá se pro optimalizaci kódu jazyka Visual Basic. |
defaultvalue | Umožňuje specifikaci výchozí hodnoty pro zadaný volitelný parametr. |
default | Označuje, že vlastní nebo dispinterface definované v rámci třídy coclass představuje výchozí programovatelnost rozhraní. |
defaultvtable | Definuje rozhraní jako výchozí vtable rozhraní pro ovládací prvek. |
dispinterface | Umístí rozhraní do souboru .idl jako rozhraní pro odeslání. |
displaybind | Označuje vlastnost, která by se měla uživateli zobrazit jako vázání. |
dual | Umístí rozhraní do souboru .idl jako duální rozhraní. |
entry | Určuje exportovanou funkci nebo konstantu v modulu identifikací vstupního bodu v knihovně DLL. |
first_is | Určuje index prvního prvku pole, který se má přenést. |
helpcontext | Určuje ID kontextu, které umožňuje uživateli zobrazit informace o tomto prvku v souboru nápovědy. |
helpfile | Nastaví název souboru nápovědy pro knihovnu typů. |
helpstringcontext | Určuje ID tématu nápovědy v souboru .hlp nebo .chm. |
helpstringdll | Určuje název knihovny DLL, který se má použít k provedení vyhledávání řetězců dokumentu (lokalizace). |
helpstring | Určuje řetězec znaků, který se používá k popisu prvku, na který se vztahuje. |
hidden | Označuje, že položka existuje, ale neměla by být zobrazena v prohlížeči orientovaném na uživatele. |
idl_module | Určuje vstupní bod v knihovně DLL. |
idl_quote | Umožňuje používat atributy nebo konstrukty IDL, které nejsou podporovány v aktuální verzi jazyka Visual C++. |
id | Určuje DISPID pro členovou funkci (vlastnost nebo metodu v rozhraní nebo dispinterface). |
iid_is | Určuje IID rozhraní modelu COM, na které odkazuje ukazatel rozhraní. |
immediatebind | Označuje, že databáze bude okamžitě upozorněna na všechny změny vlastnosti objektu vázaného na data. |
importlib | Zkompiluje typy, které již byly zkompilovány do jiné knihovny typů, která je k dispozici pro vytvářenou knihovnu typů. |
import | Určuje jiný soubor .idl, .odl nebo hlavičky obsahující definice, na které chcete odkazovat z hlavního souboru .idl. |
include | Určuje jeden nebo více souborů hlaviček, které se mají zahrnout do vygenerovaného souboru .idl. |
includelib | Způsobí zahrnutí souboru .idl nebo .h do vygenerovaného souboru .idl. |
v | Označuje, že parametr má být předán z volající procedury do volané procedury. |
last_is | Určuje index posledního prvku pole, který se má přenést. |
lcid | Umožňuje předat identifikátor národního prostředí funkci. |
length_is | Určuje počet prvků pole, které se mají přenést. |
licensed | Označuje, že třída coclass, na kterou se vztahuje, je licencovaná a musí být vytvořena pomocí IClassFactory2 instance . |
local | Umožňuje použít kompilátor MIDL jako generátor hlaviček při použití v hlavičce rozhraní. Při použití v jednotlivých funkcích určuje místní proceduru, pro kterou nejsou generovány žádné zástupné procedury. |
max_is | Určuje maximální hodnotu platného indexu pole. |
module | Definuje blok knihovny v souboru .idl. |
ms_union | Řídí zarovnání reprezentace síťových dat necapsulovaných sjednocení. |
no_injected_text | Brání kompilátoru v vkládání kódu v důsledku použití atributu. |
nonbrowsable | Označuje, že člen rozhraní by neměl být zobrazen v prohlížeči vlastností. |
noncreatable | Definuje objekt, který nelze vytvořit instanci sám o sobě. |
nonextensible | Určuje, že IDispatch implementace zahrnuje pouze vlastnosti a metody uvedené v popisu rozhraní a nelze ji rozšířit o další členy za běhu. |
object | Identifikuje vlastní rozhraní; synonymum s vlastním atributem. |
odl | Identifikuje rozhraní jako rozhraní ODL (Object Description Language). |
oleautomation | Označuje, že rozhraní je kompatibilní se službou Automation. |
optional | Určuje volitelný parametr členské funkce. |
out | Identifikuje parametry ukazatele, které jsou vráceny z volané procedury na volající proceduru (ze serveru do klienta). |
pointer_default | Určuje výchozí atribut ukazatele pro všechny ukazatele kromě ukazatelů nejvyšší úrovně, které se zobrazují v seznamech parametrů. |
pragma | Vygeneruje zadaný řetězec bez znaků uvozovek do vygenerovaného souboru .idl. |
progid | Určuje Identifikátor ProgID objektu COM. |
propget | Určuje funkci přístupového objektu vlastnosti (get). |
propputref | Určuje funkci nastavení vlastnosti, která místo hodnoty používá odkaz. |
propput | Určuje funkci nastavení vlastnosti. |
ptr | Určuje ukazatel jako úplný ukazatel. |
public | Zajišťuje, že typedef přejde do knihovny typů, i když není odkazován z souboru .idl. |
range | Určuje rozsah povolených hodnot pro argumenty nebo pole, jejichž hodnoty jsou nastaveny za běhu. |
readonly | Zakáže přiřazení proměnné. |
ref | Identifikuje ukazatel odkazu. |
requestedit | Označuje, že vlastnost podporuje OnRequestEdit oznámení. |
restricted | Určuje, že knihovnu nebo člen modulu, rozhraní nebo dispinterface nelze libovolně volat. |
retval | Určuje parametr, který obdrží návratové hodnoty člena. |
size_is | Určuje velikost paměti přidělenou pro ukazatele velikosti, ukazatele velikosti na ukazatele velikosti a jednorozměrná nebo multidimenzionální pole. |
source | Označuje, že člen třídy, vlastnosti nebo metody je zdrojem událostí. |
string | Označuje, že jednorozměrná char , , wchar_t , byte nebo ekvivalentní matice nebo ukazatel na takové pole musí být považován za řetězec. |
switch_is | Určuje výraz nebo identifikátor, který funguje jako sjednocování, který vybere člena sjednocení. |
switch_type | Identifikuje typ proměnné použité jako sjednocovacího diskriminantu. |
transmit_as | Dává kompilátoru pokyn, aby přidružil prezentovaný typ, se kterým klientská a serverová aplikace manipuluje s přenášeným typem. |
uidefault | Označuje, že člen informace o typu je výchozím členem pro zobrazení v uživatelském rozhraní. |
unique | Určuje jedinečný ukazatel. |
usesgetlasterror | Informuje volajícího, že pokud při volání této funkce dojde k chybě, může volající zavolat GetLastError a načíst kód chyby. |
uuid | Určuje jedinečné ID třídy nebo rozhraní. |
v1_enum | Směruje, že zadaný typ výčtu se přenáší jako 32bitová entita, nikoli jako 16bitová výchozí hodnota. |
vararg | Určuje, že funkce převezme proměnný počet argumentů. |
vi_progid | Určuje formulář nezávislý na verzi identifikátoru ProgID. |
wire_marshal | Určuje datový typ, který se použije k přenosu místo datového typu specifického pro aplikaci. |