[ComImport(), InterfaceType(ComInterfaceType.InterfaceIsDual), Guid("001677d0-fd16-11ce-abc4-02608c9e7553")]
public interface IADsContainer
{
int Count
{get; }
object _newEnum
{
[return: MarshalAs(UnmanagedType.IUnknown)]
get;
}
object Filter
{
[return: MarshalAs(UnmanagedType.Struct)] get;
[return: MarshalAs(UnmanagedType.Struct)]
set;
}
object Hints
{
[return: MarshalAs(UnmanagedType.Struct)]
get;
[return: MarshalAs(UnmanagedType.Struct)]
set;
}
[return: MarshalAs(UnmanagedType.IDispatch)]
object GetObject(
[MarshalAs(UnmanagedType.BStr)]
string ClassName,
[MarshalAs(UnmanagedType.BStr)]
string RelativeName);
[return: MarshalAs(UnmanagedType.IDispatch)]
object Create(
[MarshalAs(UnmanagedType.BStr)]
string ClassName,
[MarshalAs(UnmanagedType.BStr)]
string RelativeName);
void Delete(
[MarshalAs(UnmanagedType.BStr)]
string ClassName,
[MarshalAs(UnmanagedType.BStr)]
string RelativeName);
[return: MarshalAs(UnmanagedType.IDispatch)]
object CopyHere(
[MarshalAs(UnmanagedType.BStr)]
string SourceName,
[MarshalAs(UnmanagedType.BStr)]
string NewName);
[return: MarshalAs(UnmanagedType.IDispatch)]
object MoveHere(
[MarshalAs(UnmanagedType.BStr)]
string SourceName,
[MarshalAs(UnmanagedType.BStr)]
string NewName);
}
<ComImport> _
<Guid("TODO")> _
'TODO: Insert <InterfaceType(ComInterfaceType.InterfaceIsIUnknown)> _ if this doesn't derive from IDispatch
Interface IADsContainer
TODO
End Interface
None.
None.
IADsContainer baseObj = (IADsContainer)Marshal.BindToMoniker("IIS://LOCALHOST/W3SVC");
IEnumVARIANT venum = (IEnumVARIANT)baseObj._newEnum;
object[] regvar = new object[1];
while (venum.Next(1, regvar, fetched) == 0)
{
IADs item = (IADs)regvar[0];
if (item.Class == "IIsWebServer")
{
string path = aap.ADsPath;
}
}