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;
141 static LONG magic = 0x10000000;
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,
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define InterlockedIncrement
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_add_head(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
LPVOID WINAPI TlsGetValue(IN DWORD Index)
DWORD WINAPI TlsAlloc(VOID)
BOOL WINAPI TlsSetValue(IN DWORD Index, IN LPVOID Value)
BOOL WINAPI TlsFree(IN DWORD Index)
DWORD WINAPI GetTickCount(VOID)
static void default_task_destr(task_t *task)
static void call_timer_disp(IDispatch *disp)
LONG get_task_target_magic(void)
HWND get_thread_hwnd(void)
thread_data_t * get_thread_data(BOOL create)
HRESULT clear_task_timer(HTMLInnerWindow *window, BOOL interval, DWORD id)
HRESULT push_task(task_t *task, task_proc_t proc, task_proc_t destr, LONG magic)
void remove_target_tasks(LONG target)
static LRESULT process_timer(void)
static void release_task_timer(HWND thread_hwnd, task_timer_t *timer)
HRESULT set_task_timer(HTMLInnerWindow *window, DWORD msec, BOOL interval, IDispatch *disp, LONG *id)
static HWND create_thread_hwnd(void)
static LRESULT WINAPI hidden_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
void flush_pending_tasks(LONG target)
static task_t * pop_task(void)
void(* task_proc_t)(DocHost *, struct _task_header_t *)
#define InterlockedCompareExchange
static IHTMLWindow2 * window
static const struct access_res create[16]
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_SAFE(cursor, cursor2, list)
__WINE_SERVER_LIST_INLINE struct list * list_tail(const struct list *list)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
#define TLS_OUT_OF_INDEXES
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
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)
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
struct _WNDCLASSEXW WNDCLASSEXW
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)