Мне нужно чтобы у каждого окна был свой довольно большой кусок памяти. Сейчас я делаю это через SetWindowLong и GetWindowLong(hWnd,0) == pMem Долго ли выполняется эти функции? Как лучше это делать?
Ну, сначала нужно выделить этот "большой кусок памяти". Выделяется в WNDCLASS[EX] для класса и окна. А насчёт скорости - нет, не долго. Парочка вызовов и помещение данных в структуру.
Более эффективно - мэп, с хендлами в качестве ключей. Во-первых это быстрее - т.к. просто работа с памятью, имеющей фиксированное время доступа. Во-вторых никаких вызовов виндовой подсистемы.