Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
En OLE-hanterare är en DLL som innehåller flera interagerande komponenter som används för att länka och bädda in. För att undvika kostnaden för konstant kommunikation mellan en container och dess server läses hanteraren in i containerns processutrymme för att fungera för en server som en slags surrogatprocess. OLE-hanteraren hanterar containerbegäranden som inte kräver serverprogrammets uppmärksamhet, till exempel begäranden om ritning. När en container begär något som objekthanteraren inte kan tillhandahålla kommunicerar hanteraren med serverprogrammet med hjälp av com-mekanismen för out-of-process-kommunikation.
OLE-hanteringskomponenterna innehåller fjärrstyrningskomponenter för att hantera kommunikationen mellan hanteraren och dess server, en cache för lagring av data för ett objekt (tillsammans med information om hur dessa data ska formateras och visas) och ett styrande objekt som samordnar aktiviteterna för DLL:ers andra komponenter. Om ett objekt är en länk innehåller DLL också en länkkomponent, eller länkat objekt, som håller reda på länkkällans namn och plats.
OLE tillhandahåller en standardhanterare som de flesta program använder för att länka och bädda in. Om standardvärdet inte matchar kraven för servern kan du antingen helt ersätta standardhanteraren eller använda delar av den funktionalitet som anges där det är lämpligt. I det senare fallet implementeras programhanteraren som ett aggregerat objekt som består av ett nytt kontrollobjekt och standardhanteraren. Kombinationsprogram/standardhanterare kallas även processhanterare. Den fjärrkommunikationshanteraren används för objekt som inte har tilldelats ett CLSID i systemregistret eller som inte har någon angiven hanterare. Allt som krävs från en hanterare för dessa typer av objekt är att de skickar information över processgränsen. Om du vill skapa en ny instans av standardhanteraren anropar du OleCreateDefaultHandler. För vissa särskilda omständigheter anropar du OleCreateEmbeddingHelper.
När du skapar en instans av en hanterare för en klass kan du inte använda den för en annan. När det används för ett sammansatt dokument implementerar OLE-hanteraren datastrukturerna på containersidan när objekt i en viss klass nås via fjärranslutning.
OLE definierade standardhanteraren för klienter för lokala sammansatta dokumentservrar. Standardhanteraren implementerade ett antal gränssnitt som den typiska servern inte gjorde. När OLE senare tillät processerver för sammansatta dokument var de tvungna att skapa en inbäddningshjälp som implementerade dessa extra gränssnitt så att klienterna sömlöst kunde arbeta med dem.
Ramverksdesigners som definierar och implementerar en hanterare på klientsidan bör överväga det här problemet i sin design och bör tillhandahålla en motsvarande in-processhjälp av samma skäl. Även om designers för närvarande inte implementerar gränssnitt på hanteraren som servrarna inte exponerar, kanske de vill definiera en hjälp nu så att de kan lägga till dem i framtiden. Alternativt kan man implementera de extra gränssnitten på själva serverobjektet.
Relaterade ämnen