Поделиться через


idl_quote

Позволяет использовать конструкции IDL, которые не поддерживаются в текущей версии Visual C++ и передавать их в созданный IDL-файл.

Синтаксис

[ idl_quote(text) ]

Параметры

text
Имя атрибута, которое предполагается, что компилятор Microsoft C++ передается в созданный IDL-файл, не возвращая ошибку компилятора.

Замечания

Если атрибут C++ idl_quote используется как автономный атрибут (с запятой после закрывающей скобки), текст помещается в объединенный IDL-файл как есть. Если idl_quote используется в символе, текст помещается в блок атрибутов для этого символа.

Пример

В следующем коде показано, как можно указать неподдерживаемый атрибут (с помощью которого поддерживается), а также как определить и использовать неопределенную конструкцию IDL:

// cpp_attr_ref_idl_quote.cpp
// compile with: /LD
#include <unknwn.h>
[module(name="MyLibrary")];

[export]
struct MYFLOT {
   int i;
};

[export]
struct MYDUB {
   int i;
};

[idl_quote("typedef union _S1_TYPE switch (long l1) U1_TYPE { case 1024: \
struct MYFLOT f1; case 2048: struct MYDUB d2; } S1_TYPE;") ];

typedef struct _S1_TYPE {
   long l1;

union {
   MYFLOT f1; MYDUB d2; } U1_TYPE;
} S1_TYPE;

[uuid("2F5F63F1-16DA-11d2-9E7B-00C04FB926DA"), object]
__interface IStatic{
   HRESULT Func1([idl_quote("in")] int i);
   HRESULT func( S1_TYPE* myStruct );
};

Этот код приводит MYFLOT к тому, MYDUB что запись текста помещается в созданный IDL-файл. Параметр name принудительно помещается текст перед тем, что ссылается на имя в созданном IDL-файле. Параметр зависимостей заставляет определения списков зависимостей помещаться перед текстом в созданном IDL-файле.

Требования

Контекст атрибута Значение
Относится к В любом месте
Повторяемый No
Обязательные атрибуты нет
Недопустимые атрибуты нет

Дополнительные сведения см. в разделе Контексты атрибутов.

См. также

Атрибуты IDL
Изолированные атрибуты