⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pocketclib.h

📁 palm的pocketc
💻 H
字号:
#ifndef POCKETC_LIB_H
#define POCKETC_LIB_H

#include <PalmOS.h>

enum VarType { vtInt, vtChar, vtFloat, vtString, vtVoid };
enum StrType { stClassic, stIndirect, stConst };

struct Value {
	VarType type;
	StrType stype;
	union {
		long iVal;
		float fVal;
		char cVal;
		MemHandle sVal;
	};
};

#define VMCTRL_ENABLE_EVENTS 0

// Library routines
struct PocketCLibraryApiExt {
	char* (* lockString)(Value* v);
	void  (* unlockString)(Value* v);
	void  (* acquireString)(Value* d, Value* s);
	void  (* releaseString)(Value* v);
	void  (* unlockReleaseString)(Value* v);
	char* (* newString)(Value* v, unsigned short len);
	bool  (* newStringFromConst)(Value* v, const char* data);
	void  (* newConstString)(Value* v, const char* data);
};

struct PocketCLibGlobalsType {
	void (* push)(Value&);
	void (* pop)(Value&);
	void (* cleanup)(Value&);
	void (* typeCast)(Value&, VarType);
	void (* typeMatch)(Value&, Value&);
	bool (* UIYield)(bool);
	short  (* addLibFunc)(char* name, short nArgs, VarType arg1=vtInt, VarType arg2=vtInt, VarType arg3=vtInt, VarType arg4=vtInt, VarType arg5=vtInt, VarType arg6=vtInt, VarType arg7=vtInt, VarType arg8=vtInt, VarType arg9=vtInt, VarType arg10=vtInt);
	void (* callFunc_deprecated)(unsigned short loc);
	Value* retVal;
	Value* (* deref)(short ptr);
	bool (* callBI)(char* name);
	char* (* lockString_deprecated)(MemHandle sVal);
	void (* unlockString_deprecated)(MemHandle sVal);
	UInt32 (* vmCtrl)(UInt32 id, UInt32 val);
	void (* callFunc32)(long loc);
	PocketCLibraryApiExt* apiExt;
	UInt32 reserved;
	
	//
	// TODO: Add your global variables here
	//
	
};
typedef PocketCLibGlobalsType* PocketCLibGlobalsPtr;

#ifdef __cplusplus
extern "C" {
#endif


/********************************************************************
 * Standard library open, close, sleep and wake functions
 ********************************************************************/

extern PocketCLibGlobalsPtr PocketCLibOpen(UInt16 refNum, UInt32*);
extern Err PocketCLibClose(UInt16 refNum, UInt32);
extern Err PocketCLibSleep(UInt16 refNum);
extern Err PocketCLibWake(UInt16 refNum);

/********************************************************************
 * Custom library API functions
 ********************************************************************/
	
// Add the PocketC library function information
extern Err PocketCLibAddFunctions(UInt16 refNum);

// Execute a PocketC function
extern Err PocketCLibExecuteFunction(UInt16 refNum, int funcNum);

// For loading the library in PalmPilot Mac emulation mode
extern Err PocketCLibInstall(UInt16 refNum, SysLibTblEntryPtr entryP);

#ifdef __cplusplus 
}
#endif


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -