2009-10-20 6 views
0

Je n'ai jamais fait cela auparavant, et je suis un peu perplexe quant à la façon dont je traduirais les types de données en C#. Voici le function I'm trying to import:Comment importer cette fonction de inet.dll dans .NET?

BOOL InternetSetOption(
    __in HINTERNET hInternet, 
    __in DWORD dwOption, 
    __in LPVOID lpBuffer, 
    __in DWORD dwBufferLength 
); 

Tout ce que je suis en train de faire est de définir les paramètres de proxy sur un contrôle WebBrowser. Quels types de données devrais-je mapper en C#?

Répondre

0

Essayez la signature suivante

public partial class NativeMethods { 

    /// Return Type: BOOL->int 
    ///hInternet: void* 
    ///dwOption: DWORD->unsigned int 
    ///lpBuffer: LPVOID->void* 
    ///dwBufferLength: DWORD->unsigned int 
    [System.Runtime.InteropServices.DllImportAttribute("<Unknown>", EntryPoint="InternetSetOption")] 
    [return: System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)] 
public static extern bool InternetSetOption([System.Runtime.InteropServices.InAttribute()] System.IntPtr hInternet, uint dwOption, [System.Runtime.InteropServices.InAttribute()] System.IntPtr lpBuffer, uint dwBufferLength) ; 

} 
0

Le PInvoke page pour la fonction InternetSetOption spécifie comment elle peut être déclarée, ainsi que quelques exemples de code à portée de main.

Les déclarations seules seraient les suivantes:

public struct INTERNET_PROXY_INFO 
{ 
    public int dwAccessType; 
    public IntPtr proxy; 
    public IntPtr proxyBypass; 
} 

[DllImport("wininet.dll", SetLastError = true)] 
private static extern bool InternetSetOption(IntPtr hInternet, 
    int dwOption, IntPtr lpBuffer, int lpdwBufferLength); 
Questions connexes