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
Re: Переделать из С++
От: Аноним  
Дата: 03.07.09 10:55
Оценка: +1
Здравствуйте, Divineshadow, Вы писали:

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


на этот и другие вопросы связанные с winapi ответит сей ресурс
Переделать из С++
От: 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?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.