Передача пользовательских данных через параметр lpParam
в CreateWindow/Ex()
позволяет этим данным быть доступными для вашей оконной процедуры , пока CreateWindow/Ex()
все еще выполняется. Сам CreateWindow/Ex()
отправляет в окно несколько сообщений, включая WM_(NC)CREATE
. Когда получено WM_(NC)CREATE
, ваши данные доступны через CREATESTRUCT
, на который указывает lParam
, и поэтому вы можете затем назначить эти данные окну через SetWindowLongPtr()
(или SetProp()
) для последующих сообщений для доступа через GetWindowLongPtr()
(или GetProp()
).
Если вы подождете, пока не выйдет CreateWindow/Ex()
, прежде чем позвонить по номеру SetWindowLongPtr()
, эти начальные сообщения не будут иметь доступа к вашим данным, если только вы сохраняете его в глобальной или локальной переменной потока, к которой оконная процедура может получить доступ.
Приемлемо ли это для вас, зависит от вашей конкретной ситуации.