Question

J'essaie d'implémenter IInternetZoneManager en .NET avec Webbrowser Control mais je ne sais pas quoi faire.

Je n'ai trouvé aucun exemple de code géré concernant cette implémentation. Je suis assez méchant avec les produits OLE.

Quelqu'un peut-il fournir un échantillon à ce sujet? Je passe environ 2 jours sans chance.

Était-ce utile?

La solution

Voici ce que je reçois lorsque je le convertis:

public class Constants
{
    public const int MAX_PATH = 260;
    public const int MAX_ZONE_PATH = 260;
    public const int MAX_ZONE_DESCRIPTION = 200;
}

[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
public struct ZONEATTRIBUTES
{
    public uint cbSize;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = Constants.MAX_PATH)]
    public string szDizplayName;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = Constants.MAX_ZONE_DESCRIPTION)]
    public string szDescription;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = Constants.MAX_PATH)]
    public string szIconPath;
    public uint dwTemplateMinLevel;
    public uint dwTemplateRecommended;
    public uint dwTemplateCurrentLevel;
    public uint dwFlags;
}

public enum URLZONEREG
{
    URLZONEREG_DEFAULT = 0,
    URLZONEREG_HKLM,
    URLZONEREG_HKCU
}

[Guid("79eac9ef-baf9-11ce-8c82-00aa004ba90b")]
[ComImport]
public interface IInternetZoneManager
{
    void CopyTemplatePoliciesToZone(uint dwTemplate, uint dwZone, uint dwReserved);
    void CreateZoneEnumerator(ref uint pdwEnum, ref uint pdwCount, uint dwFlags);
    void DestroyZoneEnumerator(uint dwEnum);
    void GetZoneActionPolicy(uint dwZone, uint dwAction, IntPtr pPolicy, uint cbPolicy, 
        URLZONEREG urlZoneReg);
    void GetZoneAt(uint dwEnum, uint dwIndex, ref uint pdwZone);
    void GetZoneAttributes(uint dwZone, ref ZONEATTRIBUTES pZoneAttributes);
    void GetZoneCustomPolicy(uint dwZone, [In] ref Guid guidKey, ref IntPtr ppPolicy,
        ref uint pcbPolicy, URLZONEREG urlZoneReg);
    void LogAction(uint dwAction, [MarshalAs(UnmanagedType.LPWStr)] string pwszUrl, 
        [MarshalAs(UnmanagedType.LPWStr)] string pwszText, uint dwLogFlags);
    void PromptAction(uint dwAction, IntPtr hwndParent, [MarshalAs(UnmanagedType.LPWStr)] string pwszUrl,
        [MarshalAs(UnmanagedType.LPWStr)] string pwszText, uint dwPromptFlags);
    void SetZoneActionPolicy(uint dwZone, uint dwAction, IntPtr pPolicy, uint cbPolicy,
        URLZONEREG urlZoneReg);
    void SetZoneAttributes(uint dwZone, ref ZONEATTRIBUTES pZoneAttributes);
    void SetZoneCustomPolicy(uint dwZone, [In] ref Guid guidKey, IntPtr pPolicy,
        uint pcbPolicy, URLZONEREG urlZoneReg);
}

J'ai également posté la définition sur pinvoke.net :

http://www.pinvoke.net/default.aspx/Interfaces.IInternetZoneManager

En général, vous devriez commencer par chercher les définitions d'interopérabilité (et contribuer si ce n'est pas là).

Autres conseils

Je ne sais pas si cela aide, mais il semble utiliser l'interface dans une application C ++:

Surveillance des modifications apportées aux paramètres d'IE

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top