В чём отличия ptr, ref и unique для маршаллинга?
От: Vi2 Удмуртия http://www.adem.ru
Дата: 25.07.02 05:26
Оценка:
Разбирая вопрос с f([in,defaultvalue("")] BSTR s), столкнулся с такой проблемой.
f([in,ref,defaultvalue("")] BSTR s)
f([in,ptr,defaultvalue("")] BSTR s)
f([in,unique,defaultvalue("")] BSTR s)

транслируются в почти одинаковые TLB и _p.c для прокси.
Почти, потому как в TLB — это 1 байт: для ref 0x12, для ptr 0x5E, для unique 0xE7, а в _p.c — 1 строка с датой компиляции. Поэтому эта разница может быть вообще связано с датой компиляции.
Причём, OLEView не показывает эти ключи при просмотре TLB, да и в описаниях ITypeXXXX интерфейсов я не нашёл констант, связанных с этим делом.

Однако MSDN для MIDL утверждает, что эти ключи характеризуют разные по поведению при передаче и при выделении/освобождении памяти и т.п указатели.

Так в чём отличия ptr, ref и unique для маршаллинга? И как об этом узнаёт прокси?
Кто прольёт свет на этот вопрос?
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.