次の方法で共有


idl_quote

現在のバージョンの Visual C++ ではサポートされていない IDL コンストラクトを使用し、生成された .idl ファイルを使って渡すことができます。

[ idl_quote(
   text
) ]

パラメーター

  • text
    コンパイラ エラーを返さずに Visual C++ コンパイラから生成される .idl ファイルを使って渡される属性名。

解説

C++ 属性 idl_quote をスタンドアロン属性として使用する場合 (右角かっこの後にセミコロンを付けます)、text はマージされる .idl ファイルにそのまま配置されます。 idl_quote をシンボルに対して使用した場合、text はそのシンボルの属性ブロック内に配置されます。

使用例

サポートされている in を使用してサポートされない属性を指定する方法、および未定義の .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、および text エントリが生成される .idl ファイルに配置されます。 name パラメーターは、生成される .idl ファイルの name を参照する項目の直前に text を強制的に配置します。 dependencies パラメーターは、生成される .idl ファイルの依存リスト定義を text の前に強制的に配置します。

必要条件

属性コンテキスト

対象

任意

複数回の適用

不要

必要な属性

[なし]

無効な属性

[なし]

詳細については、「属性コンテキスト」を参照してください。

参照

その他の技術情報

IDL 属性

スタンドアロン属性

ATL サンプル