- int (*SendMessage)(tWindow *Window, int MessageID, int Length, void *Data);
-} tWMRenderer;
+
+ /**
+ * \brief Handle a message sent to the window using WM_SendMessage
+ * \param Window Target window
+ * \param MessageID Implementation defined message ID (usually the command)
+ * \param Length Length of the buffer \a Data
+ * \param Data Implementation defined data buffer
+ * \return Boolean failure (0: Handled, 1: Unhandled)
+ */
+ int (*HandleMessage)(tWindow *Window, int MessageID, int Length, const void *Data);
+
+ int nIPCHandlers;
+
+ /**
+ * \brief IPC Message handler
+ */
+ int (*IPCHandlers[])(tWindow *Window, size_t Length, const void *Data);
+};
+
+extern void WM_RegisterRenderer(tWMRenderer *Renderer);
+extern tWindow *WM_CreateWindowStruct(size_t ExtraBytes);
+extern int WM_SendIPCReply(tWindow *Window, int Message, size_t Length, const void *Data);