static LRESULT CALLBACK output_window_proc(HWND wnd, UINT message, WPARAM wparam, LPARAM lparam) { // register a new client if (message == om_mame_register_client) return register_client((HWND)wparam, lparam); // unregister a client else if (message == om_mame_unregister_client) return unregister_client((HWND)wparam, lparam); // get a string for an ID else if (message == om_mame_get_id_string) return send_id_string(Machine, (HWND)wparam, lparam); else return DefWindowProc(wnd, message, wparam, lparam); }
static LRESULT CALLBACK output_window_proc(HWND wnd, UINT message, WPARAM wparam, LPARAM lparam) { LONG_PTR ptr = GetWindowLongPtr(wnd, GWLP_USERDATA); running_machine &machine = *(running_machine *)ptr; // register a new client if (message == om_mame_register_client) return register_client((HWND)wparam, lparam); // unregister a client else if (message == om_mame_unregister_client) return unregister_client((HWND)wparam, lparam); // get a string for an ID else if (message == om_mame_get_id_string) return send_id_string(machine, (HWND)wparam, lparam); else return DefWindowProc(wnd, message, wparam, lparam); }