atrybuty IDL
Tradycyjnie utrzymywanie pliku idl oznaczało, że trzeba:
Zapoznaj się ze strukturą i składnią pliku idl, aby móc go modyfikować.
Polegaj na kreatorze, który umożliwia modyfikowanie niektórych aspektów pliku idl.
Teraz możesz zmodyfikować plik idl z poziomu pliku kodu źródłowego przy użyciu atrybutów IDL języka Visual C++. W wielu przypadkach atrybuty IDL języka Visual C++ mają taką samą nazwę jak atrybuty MIDL. Gdy nazwa atrybutu IDL języka Visual C++ i atrybut MIDL są takie same, oznacza to, że umieszczenie atrybutu Języka Visual C++ w pliku kodu źródłowego spowoduje wyświetlenie pliku idl zawierającego atrybut MIDL. Jednak atrybut IDL języka Visual C++ może nie zapewniać wszystkich funkcji atrybutu MIDL.
Jeśli atrybuty MODELU COM nie są używane, atrybuty IDL umożliwiają definiowanie interfejsów. Po skompilowaniu kodu źródłowego atrybuty są używane do definiowania wygenerowanego pliku idl. W przypadku użycia z atrybutami COM w projekcie ATL niektóre atrybuty IDL, takie jak coclass
, powodują wstrzyknięcie kodu do projektu.
Należy pamiętać, że idl_quote umożliwia korzystanie z konstrukcji MIDL, które nie są obsługiwane w bieżącej wersji programu Visual C++. Te i inne atrybuty, takie jak importlib i includelib, ułatwiają korzystanie z istniejących plików idl w bieżącym projekcie programu Visual Studio C++.
Atrybut | opis |
---|---|
aggregatable | Wskazuje, że kontrolka może być agregowana przez inną kontrolkę. |
appobject | Identyfikuje coclass jako obiekt aplikacji, który jest skojarzony z pełną aplikacją EXE, i wskazuje, że funkcje i właściwości coclass są globalnie dostępne w tej bibliotece typów. |
async_uuid | Określa identyfikator UUID, który kieruje kompilator MIDL do definiowania zarówno synchronicznych, jak i asynchronicznych wersji interfejsu COM. |
bindable | Wskazuje, że właściwość obsługuje powiązanie danych. |
call_as | Umożliwia mapowanie funkcji niezwiązanej z funkcją zdalną. |
case | Używany z atrybutem switch_type w unii. |
coclass | Umieszcza definicję klasy w pliku idl jako coclass. |
control | Określa, że typ zdefiniowany przez użytkownika jest kontrolką. |
cpp_quote | Emituje określony ciąg bez znaków cudzysłowu do wygenerowanego pliku nagłówka. |
defaultbind | Wskazuje pojedynczą, powiązaną właściwość, która najlepiej reprezentuje obiekt. |
defaultcollelem | Służy do optymalizacji kodu języka Visual Basic. |
defaultvalue | Umożliwia określenie wartości domyślnej dla typizowanego parametru opcjonalnego. |
default | Wskazuje, że niestandardowy lub dispinterface zdefiniowany w coclass reprezentuje domyślny interfejs programowy. |
defaultvtable | Definiuje interfejs jako domyślny interfejs vtable dla kontrolki. |
dispinterface | Umieszcza interfejs w pliku idl jako interfejs wysyłania. |
displaybind | Wskazuje właściwość, która powinna być wyświetlana użytkownikowi jako powiązana. |
dual | Umieszcza interfejs w pliku idl jako podwójny interfejs. |
entry | Określa wyeksportowaną funkcję lub stałą w module, identyfikując punkt wejścia w bibliotece DLL. |
first_is | Określa indeks pierwszego elementu tablicy, który ma być przesyłany. |
helpcontext | Określa identyfikator kontekstu, który umożliwia użytkownikowi wyświetlanie informacji o tym elemecie w pliku Pomocy. |
helpfile | Ustawia nazwę pliku Pomocy dla biblioteki typów. |
helpstringcontext | Określa identyfikator tematu pomocy w pliku hlp lub chm. |
helpstringdll | Określa nazwę biblioteki DLL, która ma być używana do wykonywania wyszukiwania ciągów dokumentu (lokalizacja). |
helpstring | Określa ciąg znaków używany do opisywania elementu, do którego ma on zastosowanie. |
hidden | Wskazuje, że element istnieje, ale nie powinien być wyświetlany w przeglądarce zorientowanej na użytkownika. |
idl_module | Określa punkt wejścia w dll. |
idl_quote | Umożliwia używanie atrybutów lub konstrukcji IDL, które nie są obsługiwane w bieżącej wersji programu Visual C++. |
id | Określa DISPID dla funkcji składowej (właściwości lub metody, w interfejsie lub dispinterface). |
iid_is | Określa identyfikator IID interfejsu COM wskazywany przez wskaźnik interfejsu. |
immediatebind | Wskazuje, że baza danych zostanie natychmiast powiadomiona o wszystkich zmianach właściwości obiektu powiązanego z danymi. |
importlib | Udostępnia typy, które zostały już skompilowane w innej bibliotece typów, dostępne dla tworzonej biblioteki typów. |
import | Określa inny plik idl, .odl lub nagłówek zawierający definicje, do których chcesz się odwołać z głównego pliku idl. |
include | Określa co najmniej jeden plik nagłówka, który ma zostać uwzględniony w wygenerowany plik idl. |
includelib | Powoduje, że plik idl lub .h ma zostać uwzględniony w wygenerowanym pliku idl. |
w | Wskazuje, że parametr ma zostać przekazany z procedury wywołującej do wywoływanej procedury. |
last_is | Określa indeks ostatniego elementu tablicy, który ma być przesyłany. |
lcid | Umożliwia przekazanie identyfikatora ustawień regionalnych do funkcji. |
length_is | Określa liczbę elementów tablicy, które mają być przesyłane. |
licensed | Wskazuje, że wspólna klasa, do której ma zastosowanie, jest licencjonowana i musi zostać utworzone przy użyciu polecenia IClassFactory2 . |
local | Umożliwia użycie kompilatora MIDL jako generatora nagłówków, gdy jest używany w nagłówku interfejsu. W przypadku użycia w pojedynczej funkcji wyznacza procedurę lokalną, dla której nie są generowane wycinki. |
max_is | Wyznacza maksymalną wartość prawidłowego indeksu tablicy. |
module | Definiuje blok biblioteki w pliku idl. |
ms_union | Steruje dopasowaniem danych sieciowych do nie hermetyzowanych związków. |
no_injected_text | Zapobiega wstrzyknięciu kodu przez kompilator w wyniku użycia atrybutu. |
nonbrowsable | Wskazuje, że element członkowski interfejsu nie powinien być wyświetlany w przeglądarce właściwości. |
noncreatable | Definiuje obiekt, którego nie można utworzyć samodzielnie. |
nonextensible | Określa, że implementacja IDispatch zawiera tylko właściwości i metody wymienione w opisie interfejsu i nie można go rozszerzyć z dodatkowymi elementami członkowskimi w czasie wykonywania. |
object | Identyfikuje interfejs niestandardowy; synonim z atrybutem niestandardowym. |
odl | Identyfikuje interfejs jako interfejs ODL (Object Description Language). |
oleautomation | Wskazuje, że interfejs jest zgodny z usługą Automation. |
optional | Określa opcjonalny parametr funkcji składowej. |
out | Identyfikuje parametry wskaźnika, które są zwracane z wywoływanej procedury do procedury wywołującej (z serwera do klienta). |
pointer_default | Określa domyślny atrybut wskaźnika dla wszystkich wskaźników z wyjątkiem wskaźników najwyższego poziomu, które są wyświetlane na listach parametrów. |
pragma | Emituje określony ciąg bez znaków cudzysłowu do wygenerowanego pliku idl. |
progid | Określa wartość ProgID dla obiektu COM. |
propget | Określa funkcję dostępu do właściwości (get). |
propputref | Określa funkcję ustawienia właściwości, która używa odwołania zamiast wartości. |
propput | Określa funkcję ustawienia właściwości. |
ptr | Wyznacza wskaźnik jako pełny wskaźnik. |
public | Gwarantuje, że definicja typu przejdzie do biblioteki typów, nawet jeśli nie zostanie odwołana z pliku idl. |
range | Określa zakres dozwolonych wartości dla argumentów lub pól, których wartości są ustawiane w czasie wykonywania. |
readonly | Uniemożliwia przypisanie do zmiennej. |
ref | Identyfikuje wskaźnik odniesienia. |
requestedit | Wskazuje, że właściwość obsługuje OnRequestEdit powiadomienie. |
restricted | Określa, że biblioteka lub element członkowski modułu, interfejsu lub dispinterface nie może być wywoływana dowolnie. |
retval | Wyznacza parametr, który otrzymuje wartość zwracaną elementu członkowskiego. |
size_is | Określa rozmiar pamięci przydzielonej dla wskaźników wielkości, wskaźników o rozmiarze do wskaźników wielkości i tablic jednowymiarowych lub wielowymiarowych. |
source | Wskazuje, że element członkowski klasy, właściwości lub metody jest źródłem zdarzeń. |
string | Wskazuje, że tablica jednowymiarowa char , wchar_t , byte lub równoważna albo wskaźnik do takiej tablicy musi być traktowany jako ciąg. |
switch_is | Określa wyrażenie lub identyfikator działający jako dyskryminator unii, który wybiera składową unii. |
switch_type | Określa typ zmiennej używanej jako dyskryminator unii. |
transmit_as | Instruuje kompilator, aby skojarzył przedstawiony typ, którego klient i aplikacje serwera manipulują, z typem przesyłanym. |
uidefault | Wskazuje, że element członkowski informacji o typie jest domyślnym elementem członkowskim do wyświetlania w interfejsie użytkownika. |
unique | Określa unikatowy wskaźnik. |
usesgetlasterror | Informuje obiekt wywołujący, że jeśli podczas wywoływania tej funkcji wystąpi błąd, obiekt wywołujący może wywołać GetLastError metodę w celu pobrania kodu błędu. |
uuid | Określa unikatowy identyfikator klasy lub interfejsu. |
v1_enum | Wskazuje, że określony typ wyliczany jest przesyłany jako jednostka 32-bitowa, a nie wartość domyślna 16-bitowa. |
vararg | Określa, że funkcja pobiera zmienną liczbę argumentów. |
vi_progid | Określa niezależną od wersji formę progID. |
wire_marshal | Określa typ danych, który będzie używany do transmisji zamiast typu danych specyficznych dla aplikacji. |