About Plugin API of QueenCy

Introduction

The specification of API of plug-in of QueenCy is explained.
All of API required to create plug-in and a structure object are declared to plugin.h.
In order to create plug-in, plugin.h is included and API is defined.
The compilers which checked creation of plug-in are VisualAge C++ Version 3.0 and emx 0.9d.If System call can be used for the linkage of a function also with other compilers, I will think that it can create by readjusting plugin.h.

API

In order to create plug-in, it is necessary to create six APIs shown below.

FpVersionCheck

long _System FpVersionCheck(long apLevel, long* level)

Parameter

Name
Type
I/O
Explanation
apLevel long
I
The version of API which QueenCy supports.It is 1 now.
level
long*
O
The version which API supports is returned.
It is necessary to return 1 now.

Return

long
FP_NORMAL:Normal
Other:Error

Remark

It is called for a version check at the time of the API load under QueenCy starting.
With plug-in, when initialization is required, it is necessary to carry out in this API.

FpGetPlugInInfo

long _System FpGetPlugInInfo(long level, void* data, long* need)

Parameter

Name
Type
I/O
Explanation
level
long
I
Version
data
void*
O
NULL:Size required for `need' is returned.
!=NULL:Since the pointer to `FilePlugInData1' is passed, the data form supported with plug-in is set up.
need
long*
O
When `data' is NULL, size required of `data' is set up.

Return

long
FP_NORMAL:Normal
Other:Error

Remark

When FP_NORMAL is returned by FpVersionCheck, it is called twice.
When `data' is NULL, it is necessary to return size required for `data' to `need'.
Since the pointer of FilePlugInData1 is set up when `data' is not NULL, the data format supported with plug-in is set up.

FpGetFileInfo

long _System FpGetFileInfo(long level, void* param)

Parameter

Name
Type
I/O
Explanation
level
long
I
Version
param
void*
I/O
The pointer to FilePlugInParam1.
fileName I The file name which acquires file information
width O Width
height O Height
resolution O Resolution

Return

long
FP_NORMAL:Normal
Other:Error

Remark

The picture information on a file is acquired. The information to acquire is width, height, and resolution.

FpRead

long _System FpRead(long level, void* param)

Parameter

Name
Type
I/O
Explanation
level
long
I
Version
param
void*
I
The pointer to FilePlugInParam1.
fileName I File name
width O Width
height O Heighu
resolution O Resolution
bits O Bitmap data

Return

long
FP_NORMAL:Normal
Other:Error

Remark

Image data is read.

FpWrite

long _System FpWrite(level, void* param)

Parameter

Name
Type
I/O
Explanation
level
long
I
Version
param
void*
I
The pointer to FilePlugInParam1.
fileName I File name
width I Width
height I Height
resolution I Resolution
bits I Bitmap data

Return

long
FP_NORMAL:Normal
Other:Error

Remark

It writes in the file which had image data specified.

FpOption

long _System FpOption(long level, HWND owner, PSZ mainPath)

Parameter

Name
Type
I/O
Explanation
level
long
I
Version
owner
HWND
I
The window handle of a file save dialog box.
mainPath
PSZ
I
The path with which QueenCy is installed.

Return

long
FP_NORMAL:Normal
Other:Error

Remark

It is called when an option button is pushed in a file save dialog.
It is necessary to process by displaying an option dialog.


Structure

The structure object used by API is the following two kinds.

FilePlugInData1

Field

Name
Type
Explanation
readExtensionList
char*
The list of extensions which support reading
When not supporting reading, an empty character sequence is specified.
writeExtension
char*
The extension which support writing
When not supporting writing, an empty character sequence is specified.
version
char*
Version
description
char*
Description
copyright
char*
Copyright
comment
char*
Commnt
supportedMode
int
No use

Remark

The extension of the file format which plug-in supports is set.
Only reading is supported when only readExtensionList is specified.
It is support of only writing when only writeExtension is specified.
Reading and writing are supported when readExtensionList and writeExtension is both specified.

FilePlugInParam1

Field

Name
Type
Explanation
fileName
char*
File name
width
long
Width
height
long
Height
resolution
long
Resolution
bits
char*
Bitmap data
It sets in the form of BGRBGR...BGRBGR from the lower left of a picture.
The number of bytes of one line is revalued to the multiple of 4.

Remark

It is used at the time of acquisition of file information and reading of a file, and writing.

Sample

Please download the sample of BMP from here.
bitmap.zip