21 #define WM_PROCESSTASK 0x8008 22 #define TIMER_ID 0x3000 83 IDispatch_Release(timer->
disp);
91 struct list *liter, *ltmp;
110 struct list *liter, *ltmp;
175 static DWORD id_cnt = 0x20000000;
185 timer->
id = id_cnt++;
191 IDispatch_AddRef(disp);
216 WARN(
"timet not found\n");
228 memset(&ei, 0,
sizeof(ei));
260 if(timer == last_timer) {
274 IDispatch_AddRef(disp);
285 IDispatch_Release(disp);
318 static ATOM hidden_wnd_class = 0;
319 static const WCHAR wszInternetExplorer_Hidden[] = {
'I',
'n',
't',
'e',
'r',
'n',
'e',
't',
320 ' ',
'E',
'x',
'p',
'l',
'o',
'r',
'e',
'r',
'_',
'H',
'i',
'd',
'd',
'e',
'n',0};
322 if(!hidden_wnd_class) {
327 wszInternetExplorer_Hidden,
HWND get_thread_hwnd(void)
static LRESULT WINAPI hidden_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
#define LIST_FOR_EACH_SAFE(cursor, cursor2, list)
static BOOL queue_timer(thread_data_t *thread_data, task_timer_t *timer)
thread_data_t * get_thread_data(BOOL create)
HRESULT set_task_timer(HTMLInnerWindow *window, DWORD msec, BOOL interval, IDispatch *disp, LONG *id)
LONG get_task_target_magic(void)
static void release_task_timer(HWND thread_hwnd, task_timer_t *timer)
BOOL WINAPI TlsSetValue(IN DWORD Index, IN LPVOID Value)
__WINE_SERVER_LIST_INLINE void list_add_head(struct list *list, struct list *elem)
DWORD WINAPI GetTickCount(VOID)
#define InterlockedCompareExchange
static void default_task_destr(task_t *task)
struct _WNDCLASSEXW WNDCLASSEXW
__WINE_SERVER_LIST_INLINE struct list * list_tail(const struct list *list)
static void * heap_alloc(size_t len)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
__WINE_SERVER_LIST_INLINE struct list * list_head(const struct list *list)
void(* task_proc_t)(DocHost *, struct _task_header_t *)
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
static void call_timer_disp(IDispatch *disp)
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
static task_t * pop_task(void)
BOOL WINAPI TlsFree(IN DWORD Index)
static LRESULT process_timer(void)
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)
HRESULT clear_task_timer(HTMLInnerWindow *window, BOOL interval, DWORD id)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
DWORD WINAPI TlsAlloc(VOID)
#define TLS_OUT_OF_INDEXES
static IHTMLWindow2 * window
struct stdole::EXCEPINFO EXCEPINFO
__WINE_SERVER_LIST_INLINE int list_empty(const struct list *list)
#define InterlockedIncrement
static HWND create_thread_hwnd(void)
void remove_target_tasks(LONG target)
LPVOID WINAPI TlsGetValue(IN DWORD Index)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
struct stdole::DISPPARAMS DISPPARAMS
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
void flush_pending_tasks(LONG target)
static const struct access_res create[16]
HRESULT push_task(task_t *task, task_proc_t proc, task_proc_t destr, LONG magic)
static BOOL heap_free(void *mem)