Dela via


Hantera minnesallokering

I COM anropas många, om inte de flesta, gränssnittsmetoder av kod skrivna av en programmeringsorganisation och implementeras med kod skriven av en annan. Många av parametrarna och returvärdena för dessa funktioner är av typer som kan skickas runt som värden. Ibland är det dock nödvändigt att skicka datastrukturer för vilka detta inte är fallet, så det är nödvändigt för både anroparen och den anropade att ha en kompatibel allokerings- och avallokeringspolicy. COM definierar en universell konvention för minnesallokering eftersom det är mer rimligt än att definiera regler från fall till fall och så att implementeringen av COM-fjärrproceduranropet kan hantera minnet korrekt.

Metoderna i ett COM-gränssnitt ger alltid minneshantering av pekare till gränssnittet genom att anropa funktionerna AddRef och Release i gränssnittet IUnknown, som alla andra COM-gränssnitt härleder från. (Mer information finns i regler för att hantera referensantal.)

Det här avsnittet beskriver bara hur du allokerar minne för parametrar som inte skickas av värde – inte pekare till gränssnitt, utan mer vardagliga saker som strängar, pekare till strukturer och så vidare.

Mer information finns i följande avsnitt: