/* 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.                    */
/***************************************************/

/* Message definitions - needs string_value to be known, */
/* found in MiscDefs.h.                                  */

#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

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;