Definiera COM-gränssnitt
Microsoft definierar många COM-gränssnitt. I de flesta fall kan du återanvända dessa allmänna gränssnitt. Vissa program har dock specifika krav som gör det önskvärt eller nödvändigt att definiera dina egna objektgränssnitt.
Alla COM-gränssnitt måste direkt eller indirekt härledas från gränssnittet IUnknown. Inom den begränsningen kan ditt anpassade gränssnitt stödja nästan vilken metod eller parameter som helst, inklusive asynkrona metoder. Du kan också generera ett typbibliotek för dina anpassade gränssnitt så att klienterna kan komma åt information om objektets metoder vid körning. När du har definierat ett gränssnitt, beskriver det i Microsoft Interface Definition Language (MIDL), kompilerar och registrerar det använder du det precis som med alla allmänna gränssnitt. Med distribuerad COM är gränssnittsmetoder tillgängliga både för fjärrprocesser och andra processer på samma dator.
Slutligen kräver skapandet av COM-gränssnitt en utvecklingsmiljö som innehåller en C/C++-kompilator och Midl.exe kompilatorn.
Stegen för att skapa ett COM-gränssnitt är följande:
- Bestäm hur du vill tillhandahålla stöd för marskalkering för ditt gränssnitt; antingen med typbiblioteksdriven marskalkering eller med en proxy-/stubba-DLL. Även in-process-gränssnitt måste hanteras om de ska användas över lägenhetsgränser. Det är en bra idé att skapa stöd för marskalkering i varje COM-gränssnitt, även om du inte tror att du behöver det. Mer information finns i Interface Marshaling.
- Beskriv gränssnittet eller gränssnitten i en IDL-fil (interface definition). Dessutom kan du ange vissa lokala aspekter av gränssnittet i en programkonfigurationsfil (ACF). Om du använder typbiblioteksdriven marshaling lägger du till en -biblioteks--instruktion som refererar till de gränssnitt som du vill generera typinformation för.
- Använd MIDL-kompilatorn för att generera en typbiblioteksfil och rubrikfil, eller C-språkproxy-/stub-filer, gränssnittsidentifierarfil, DLL-datafil och huvudfil. Mer information finns i MIDL-kompilering.
- Beroende på vilken marshaling-metod du valde skriver du en def-fil (module definition), kompilerar och länkar alla MIDL-genererade filer till en enda proxy-DLL och registrerar gränssnittet i systemregistret eller registrerar typbiblioteket. Mer information finns i Läsa in och registrera ett typbibliotek och skapa och registrera en proxy-DLL-.
Relaterade ämnen