Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När det finns flera pekarnivåer associeras attributen med pekaren närmast variabelnamnet. Klienten ansvarar fortfarande för att allokera minne som är associerat med svaret.
I följande exempel kan stub anropa servern utan att veta i förväg hur mycket data som ska returneras:
[
uuid( ...),
version(3.3),
]
interface AnInterface
{
HRESULT GetBars([out] long * pSize,
[out, size_is( , *pSize)]
BAR ** ppBar);//BAR type defined elsewhere
}
I det här exemplet skickar stub-filen en unik pekare som servern initierar för att NULL-. Servern allokerar sedan ett block med BAR:er, anger pekaren, anger storleksargumentet och returnerar. Observera att för att servern ska påverka anroparen måste du skicka en [referens] pekare till en [unik] pekare till dina data. Observera också kommatecknet i [size_is( , *pSize )], vilket indikerar att pekaren på den översta nivån inte är en storlekspekare, men att pekaren på lägre nivå är det.
På klientsidan anger stub *ppBar till NULL- innan fjärrproceduren anropas. Stub allokerar och avmarshalerar sedan arry för BAR-objekt. Storleksargumentet anger storleken på blocket (och antalet omarshalerade bars). Klienten måste frigöra den returnerade matrisen med BAR-objekt när den inte längre krävs.
Relaterade ämnen