そのマクロ自体は
static void* unsafe INSTANCEDATA_OF_PROPERTY_PTR(void* x) {
return *((KSPROPERTY*)x + 1);
}
static int INSTANCEDATA_OF_PROEPRTY_SIZE<T>(ref T x) {
return Marshal.SizeOf(typeof(T)) - Marshal.SizeOf(typeof(KSPROPERTY));
}
だけど
要はTは
struct {
KSPROPERTY ks;
以下インスタンスデータ
}
って構造でインスタンスデータの先頭ポインタとサイズを取得するもの
で、マクロだけ解説して役に立つのかね