Лучший способ хранения этого указателя для использования в WndProc

Мне интересно знать лучший / распространенный способ храненияthis указатель для использования вWndProc, Я знаю несколько подходов, но у каждого, насколько я понимаю, есть свои недостатки. Мои вопросы:

Какие существуют способы создания кода такого типа:

CWindow::WndProc(UINT msg, WPARAM wParam, LPARAM)
{
  this->DoSomething();
}

Я могу думать о Thunks, HashMaps, Thread Local Storage и структуре пользовательских данных Windows.

Каковы плюсы / минусы каждого из этих подходов?

Очки начисляются за примеры кода и рекомендации.

Это чисто ради любопытства. После использования MFC мне просто стало интересно, как это работает, а затем подумал об ATL и т. Д.

Edit: Какое самое раннее место, где я могу правильно использоватьHWND в окне проц? Это задокументировано какWM_NCCREATE - но если вы на самом деле экспериментируете, этоnot первое сообщение, которое будет отправлено в окно.

Edit: ATL использует thunk для доступа к указателю this. MFC использует хеш-таблицу поискаHWNDs.

Ответы на вопрос(9)

Ваш ответ на вопрос