/* Copyright 1997 Acorn Computers Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /***************************************************/ /* File : PlugIn.h */ /* */ /* Purpose: Supporting the generic RISC OS browser */ /* Plug-In interface. */ /* */ /* Author : A.D.Hodgkinson */ /* */ /* History: 28-Sep-97: Created. */ /***************************************************/ /* Structures - queue of ready-to-launch Plug-Ins */ typedef struct plugin_queue { struct plugin_queue * next; browser_data * browser; HStream * token; BBox position; } plugin_queue; /* Message definitions - needs string_value to be known, */ /* found in MiscDefs.h. */ #define MPlugIn_Open_OpenAsHelperNotPlugin (1<<0); #define Message_PlugIn_Open 0x4d540 typedef struct MPlugIn_Open { unsigned int flags; unsigned int reserved; int browser_instance_handle; int parent_window_handle; BBox parent_area; int file_type; string_value file_name; } MPlugIn_Open; #define Message_PlugIn_Opening 0x4d541 #define MPlugIn_Opening_CanAcceptInputFocus (1u<<0) #define MPlugIn_Opening_WantsCodeResourceFetched (1u<<1) #define MPlugIn_Opening_WillDeleteParamsItself (1u<<2) typedef struct MPlugIn_Opening { unsigned int flags; int plugin_instance_handle; int browser_instance_handle; } MPlugIn_Opening; #define Message_PlugIn_Close 0x4d542 #define MPlugIn_Close_WouldLikePlugInToExit (1u<<0) typedef struct MPlugIn_Close { unsigned int flags; int plugin_instance_handle; int browser_instance_handle; } MPlugIn_Close; #define Message_PlugIn_Closed 0x4d543 typedef struct MPlugIn_Closed { unsigned int flags; int plugin_instance_handle; int browser_instance_handle; int errnum; char errmess[sizeof(WimpMessage) - 36]; } MPlugIn_Closed; #define Message_PlugIn_Reshape 0x4d544 typedef struct MPlugIn_Reshape { unsigned int flags; int plugin_instance_handle; int browser_instance_handle; int parent_window_handle; BBox parent_area; } MPlugIn_Reshape; #define Message_PlugIn_URLAccess 0x4d54d #define MPlugIn_URLAccess_ReturnNotifyWhenComplete (1u<<0); #define MPlugIn_URLAccess_POSTToURL (1u<<1); #define MPlugIn_URLAccess_POSTAFile (1u<<2); typedef struct MPlugIn_URLAccess { unsigned int flags; int plugin_instance_handle; int browser_instance_handle; string_value url; string_value target; int notify_data; int data_length; string_value data_pointer; } MPlugIn_URLAccess; /* Other definitions */ #define PlugIn_ParamType_Terminator 0 #define PlugIn_ParamType_DataFromPARAM 1 #define PlugIn_ParamType_URLFromPARAM 2 #define PlugIn_ParamType_ObjectFromPARAM 3 #define PlugIn_ParamType_BrowserSpecial 4 #define PlugIn_ParamType_DataFromOBJECT 5 #define PlugIn_ParamType_URLFromOBJECT 6 #define PlugIn_ParamType_DataFromAPPLET 5 #define PlugIn_ParamType_URLFromAPPLET 6 /* Function prototypes */ const char * plugin_return_string (WimpMessage * m, string_value * sv); _kernel_oserror * plugin_write_params (browser_data * b, HStream * t, char * buffer, int buffer_size, BBox * position); _kernel_oserror * plugin_plugin_open_bounced (WimpMessage * m); _kernel_oserror * plugin_got_plugin_opening (WimpMessage * m); _kernel_oserror * plugin_send_plugin_close (browser_data * b, unsigned int instance, unsigned int task); _kernel_oserror * plugin_send_original_plugin_reshape (browser_data * b, unsigned int instance, unsigned int task, BBox * position); _kernel_oserror * plugin_got_url_access (WimpMessage * m); _kernel_oserror * plugin_add_queue_item (browser_data * b, HStream * t, BBox * position); _kernel_oserror * plugin_remove_item (plugin_queue * remove); _kernel_oserror * plugin_flush_queue (browser_data * b, int start_now); void plugin_shutdown (void);