Переделать из С++
От: Divineshadow  
Дата: 03.07.09 10:34
Оценка:
Здравствуйте.
Есть код на С++
    RGNDATA* pData = (RGNDATA*)calloc(iSize, 1);
    int iSize2 = ::GetRegionData(hSystemRgn, iSize, pData);

структура RGNDATA объявлена следующим образом:
typedef struct _RGNDATA { 
  RGNDATAHEADER rdh; 
  char Buffer[1]; 
} RGNDATA;


После выполнения апишной GetRegionData, в поле Buffer содержится массив RECT:
RECT * pRect = (RECT *)pData->Buffer;

Подскажите как в C# объявить RGNDATA и затем вытащить массив RECT из Buffer?
Re: Переделать из С++
От: Аноним  
Дата: 03.07.09 10:55
Оценка: +1
Здравствуйте, Divineshadow, Вы писали:

D>Подскажите как в C# объявить RGNDATA и затем вытащить массив RECT из Buffer?


на этот и другие вопросы связанные с winapi ответит сей ресурс
Re: Переделать из С++
От: Pavel Dvorkin Россия  
Дата: 04.07.09 05:09
Оценка: 64 (1)
Здравствуйте, Divineshadow, Вы писали:

D>Подскажите как в C# объявить RGNDATA и затем вытащить массив RECT из Buffer?


Не совсем понятно, зачем это делать с помощью Интероп, когда есть

Region.GetRegionData Method

public RegionData GetRegionData ()

и


RegionData.Data Property
Gets or sets an array of bytes that specify the Region object.
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.