nocode 属性
[nocode] 属性は、クライアント スタブ コードの生成を防ぐために、ACF ヘッダーまたは個々の関数で使用されます。
[
nocode
[ , ACF-interface-attributes ]
]
interface interface-name
{
[ include filename-list ; ]
[ typedef [type-attribute-list] typename; ]
[ [ nocode [ , ACF-function-attributes ] ] function-name (
[ ACF-parameter-attributes ] parameter-name ;
...);
]
...
}
-
ACF-interface-attributes
-
インターフェイス全体に適用される 1 つ以上の属性の一覧を指定します。 有効な属性には 、[auto_handle] または [implicit_handle] と [code] または [nocode] のいずれかが含まれます。 2 つ以上のインターフェイス属性が存在する場合は、コンマで区切る必要があります。
-
interface-name
-
インターフェイスの名前を指定します。 DCE 互換モードでは、インターフェイス名は IDL ファイルで指定されたインターフェイスの名前と一致する必要があります。 MIDL コンパイラ スイッチ /acf を使用する場合、ACF 内のインターフェイス名と IDL ファイル内のインターフェイス名は異なる場合があります。
-
filename-list
-
1 つ以上の C 言語ヘッダー ファイル名の一覧をコンマで区切って指定します。 拡張子を含む完全なファイル名を指定する必要があります。
-
type-attribute-list
-
指定した型に適用される 1 つ以上の属性の一覧をコンマで区切って指定します。 有効な型属性には [allocate]が含まれます。
-
typename
-
IDL ファイルで定義されている型を指定します。 ACF の型属性は、IDL ファイルで以前に定義された型にのみ適用できます。
-
ACF-function-attributes
-
[comm_status] など、関数全体に適用される属性を指定します。 関数属性は角かっこで囲まれています。 複数の関数属性をコンマで区切ります。
-
function-name
-
IDL ファイルで定義されている関数の名前を指定します。
-
ACF-parameter-attributes
-
パラメーターに適用される ACF 属性を指定します。 パラメーターには、0 個以上の属性を適用できることに注意してください。 複数のパラメーター属性をコンマで区切ります。 ACF パラメーター属性は角かっこで囲まれています。
-
parameter-name
-
IDL ファイルで定義されている関数のパラメーターを指定します。 関数の各パラメーターは、同じシーケンスで指定し、IDL ファイルで定義されているのと同じ名前を使用する必要があります。
[nocode] 属性は、ACF ヘッダーに表示することも、個々の関数に適用することもできます。
ACF ヘッダーに [nocode] 属性が表示される場合、[code] 関数属性がない限り、リモート関数に対してクライアント スタブ コードは生成されません。 [code] 属性を関数属性として指定することで、個々の関数のヘッダーの [nocode] 属性をオーバーライドできます。
[nocode] 属性が関数の属性リストに表示されると、関数のクライアント スタブ コードは生成されません。
クライアント スタブ コードは、次の場合に生成されません。
- ACF ヘッダーには [nocode] 属性が含まれています。
- [nocode] 属性が関数に適用されます。
- [local] 属性は、インターフェイス ファイル内の関数に適用されます。
[code] または [nocode] は関数の属性リストに表示でき、選択した属性は 1 回だけ表示できます。
[nocode] 属性は、サーバー スタブが生成されるときに無視されます。 DCE 互換モードでサーバー スタブを生成するときに適用することはできません。