IInterfaceInfo.Source プロパティ
インターフェイスがソースかどうか、つまり、クライアントが呼び出すのではなく待機しているインターフェイスかどうかを示す値を取得します。
名前空間 : Microsoft.VisualStudio.VsWizard
アセンブリ : Microsoft.VisualStudio.VsWizard (Microsoft.VisualStudio.VsWizard.dll 内)
構文
'宣言
ReadOnly Property Source As Boolean
'使用
Dim instance As IInterfaceInfo
Dim value As Boolean
value = instance.Source
bool Source { get; }
property bool Source {
bool get ();
}
function get Source () : boolean
プロパティ値
型 : System.Boolean
インターフェイスがソースの場合は true、それ以外の場合は false。
解説
ソース インターフェイスは、クライアントが (C++ のコネクション ポイントなどを使用して) 呼び出しを行うインターフェイスではなく、クライアントへの通信を行うインターフェイスです。サーバーが呼び出しを行い (または、複数のクライアントを許可するインターフェイスでは呼び出しを多重化し)、クライアントはハンドラを実装します。
指定されたコクラスでは、1 つのインターフェイスだけを [source] としてマークできます。
例
// From the Visual C++ Member Variable wizard
function GenerateActiveXControlClassText(oTypeLib)
{
var strClassText = "";
var oInterfaces = oTypeLib.Interfaces;
var nCount = oInterfaces.Count;
var bGenerate_Array = new Array();
var Name_Array = new Array();
var Base_Array = new Array();
var i;
for (i = 0; i < nCount; i++)
{
var oInterface = oInterfaces.item(i+1);
if (oInterface.CoClass != CONTROL_TYPE.text
|| oInterface.Default == false
|| oInterface.Source == true)
continue;
Name_Array[i] = oInterface.Name;
Base_Array[i] = oInterface.Base;
bGenerate_Array[i] = true;
}
for (i = 0; i < nCount; i++)
{
if (oInterface.CoClass != CONTROL_TYPE.text
|| oInterface.Default == false
|| oInterface.Source == true)
continue;
var strBase = Base_Array[i];
if(strBase && strBase.length &&
strBase!="IDispatch" && strBase!="IUnknown")
{
for(var j=0; j< nCount; j++)
{
if(strBase == Name_Array[j])
{
bGenerate_Array[j] = false;
break;
}
}
}
}
for (i = 0; i < nCount; i++)
{
var oInterface = oInterfaces.item(i+1);
if(!bGenerate_Array[i])
{
strClassText += "// Interface: " + Name_Array[i] + " not generated, because it was a base interface for others.\n\n";
}
else if (oInterface.Type == 2
&& oInterface.CoClass == CONTROL_TYPE.text
&& oInterface.Default
&& !oInterface.Source) // einterfaceDispinterface
{
strClassText += "// ";
strClassText += Name_Array[i];
strClassText += "\r\n\r\n// Functions\r\n//\r\n\r\n";
strClassText += GetFuncText(oTypeLib, oInterface, strClassText);
}
}
return strClassText;
}
アクセス許可
- 直前の呼び出し元に対する完全な信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。