## Win32 Specific Support

Win32 Specific Support — Win32 specific API

## Synopsis

    void                clutter_win32_disable_event_retrieval
                                                            (void);
    gboolean            clutter_win32_set_stage_foreign     (ClutterStage *stage,
                                                             HWND hwnd);
    ClutterStage *      clutter_win32_get_stage_from_window (HWND hwnd);
    HWND                clutter_win32_get_stage_window      (ClutterStage *stage);
    gboolean            clutter_win32_handle_event          (const MSG *msg);

## Description

The Win32 backend for Clutter provides some specific API, allowing integration with the Win32 API for embedding and manipulating the stage window.

The ClutterWin32 API is available since Clutter 0.8

## Details

### clutter_win32_disable_event_retrieval ()

    void                clutter_win32_disable_event_retrieval
                                                            (void);

Disables retrieval of Windows messages in the main loop. Use to create event-less canvas.

This function can only be called before calling `clutter_init()`.

Since 0.8

### clutter_win32_set_stage_foreign ()

    gboolean            clutter_win32_set_stage_foreign     (ClutterStage *stage,
                                                             HWND hwnd);

Target the ClutterStage to use an existing external window handle.

`stage` : | a ClutterStage
`hwnd` : | an existing window handle
Returns : | `TRUE` if foreign window is valid

Since 0.8

### clutter_win32_get_stage_from_window ()

    ClutterStage *      clutter_win32_get_stage_from_window (HWND hwnd);

Gets the stage for a particular window.

`hwnd` : | a window handle
Returns : | The stage or NULL if a stage does not exist for the window.

Since 0.8

### clutter_win32_get_stage_window ()

    HWND                clutter_win32_get_stage_window      (ClutterStage *stage);

Gets the stage's window handle

`stage` : | a ClutterStage
Returns : | An HWND for the stage window.

Since 0.8

### clutter_win32_handle_event ()

    gboolean            clutter_win32_handle_event          (const MSG *msg);

This function processes a single Win32 message. It can be used to hook into external windows message processing (for example, a GDK filter function).

If `clutter_win32_disable_event_retrieval()` has been called, you must let this function process events to update Clutter's internal state.

`msg` : | A pointer to a structure describing a Win32 message.
Returns : | `TRUE` if the message was handled entirely by Clutter and no further processing (such as calling the default window procedure) should take place. `FALSE` is returned if is the message was not handled at all or if Clutter expects processing to take place.

Since 1.6