Hej.. Intressant exempel på API! Sv: API
Det finns olika sätt. Ett sätt är att via Visual Studio .Net bara skapa en referens till den via Explorer solution. Sedan kan du bygga en Wrapper via DLLImport attributet.
Detta kräver dock lite mer implementation då du måste definera dess Interface för att sedan kunna använda dem.
Ex om du vill använda messenger apiet. Skapar du en referens till:
<code>
msgsc.dll
</code>
Sedan göra en Using om du vill:
<code>
using Interopt.Messenger;
</code>
Sedan instansiera klassen du vill nyttja:
<code>
myMessenger = new MsgrObject();
</code>
Problemet kan vara att hitta dessa namn och veta vilken klass eller metod du skall nyttja.
Om du ex vill nyttja crypto API:et i windows med DLLImport kan du ex göra följande:
<code>
[DllImport("Crypt32.dll", SetLastError=true, CharSet=CharSet.Auto)]
private static extern bool CryptUnprotectData(
ref DATA_BLOB pDataIn,
String szDataDescr,
ref DATA_BLOB pOptionalEntropy,
IntPtr pvReserved,
ref CRYPTPROTECT_PROMPTSTRUCT
pPromptStruct,
int dwFlags,
ref DATA_BLOB pDataOut);
</code>
Det du gör här är typ en wrapper metod till Crypt32.dll:s CryptUnprotectData metod.
När du anropar denna kommer den att köras i Crypt32.dll
Du väljer själv hur du vill gå tillväga. Att bygga en wrapper som exemplet ovan, ger dig stödet att underlätta dess interface ut mot andra programmerare.
//Johan NSv: API
En kommentar för dem som ej känner till det.
CryptProtectData och CryptUnprotectData är (tror jag) relativt okända Win32 APIer. Dessa kan användas för att säkert lagra information lokalt på en maskin utan att behöva en "fysisk" nyckel, tex ett smart-card. De krypterar information baserat på användarens SID (en GUID som är unik per användare, typ) och kan bara läsas av samma användare, det finns lite varianter på detta tema också.
Detta gör att man kan kryptera innehållet på tex login-info och lagra i registry. Man kan sedan låta en COM+ app som kör under samma användare som den som lagrade den krypterade infon läsa denna data utan att den för tillfället inloggade användaren kan läsa den.
Detta kan vara bra att ha ibland.
/Mattias