-
Notifications
You must be signed in to change notification settings - Fork 7
/
Main.cpp
118 lines (110 loc) · 3.91 KB
/
Main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
// Main.cpp : defines the entry point for the PBNI DLL.
//Global: 0
//Unicode: -1
#include "Main.h"
#include "List.h"
#include "Vector.h"
BOOL APIENTRY DllMain
(
HANDLE hModule,
DWORD ul_reason_for_all,
LPVOID lpReserved
)
{
switch(ul_reason_for_all){
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
// The description returned from PBX_GetDescription is used by
// the PBX2PBD tool to create pb groups for the PBNI class.
//
// + The description can contain more than one class definition.
// + A class definition can reference any class definition that
// appears before it in the description.
// + The PBNI class must inherit from a class that inherits from
// NonVisualObject, such as Transaction or Exception
PBXEXPORT LPCTSTR PBXCALL PBX_GetDescription()
{
// combined class description
static const TCHAR classDesc[] = {
/* List */
_T("class uo_list from nonvisualobject\n") \
_T(" function string getversion()\n") \
_T(" function ulong size()\n") \
_T(" function ulong maxsize()\n") \
_T(" subroutine purge()\n") \
_T(" subroutine append(any value)\n") \
_T(" function any get()\n") \
_T(" function any getat(ulong index)\n") \
_T(" subroutine set(any value)\n")
_T(" subroutine setat(ulong index, any value)\n")
_T(" subroutine remove()\n") \
_T(" subroutine removeat(ulong index)\n") \
_T(" function any getnext()\n") \
_T(" function any getprevious()\n") \
_T(" function any getandnext()\n") \
_T(" subroutine rewind()\n") \
_T(" function any getfirst()\n") \
_T(" function any getlast()\n") \
_T(" subroutine prepend(any value)\n") \
_T(" subroutine inserthere(any value)\n") \
_T(" subroutine insertbefore(ulong index, any value)\n") \
_T(" subroutine insertafter(ulong index, any value)\n") \
_T(" function boolean hasnext()\n") \
_T(" function ulong position()\n") \
_T(" subroutine sort(powerobject apo_comparator, string cmpfunc)\n") \
_T("end class\n")
/* Vector */
_T("class uo_vector from nonvisualobject\n") \
_T(" function string getversion()\n") \
_T(" function ulong size()\n") \
_T(" function ulong maxsize()\n") \
_T(" function boolean reserve(ulong size)\n") \
_T(" function boolean resize(ulong size)\n") \
_T(" subroutine purge()\n") \
_T(" subroutine append(any value)\n") \
_T(" function any get()\n") \
_T(" function any getat(ulong index)\n") \
_T(" subroutine set(any value)\n")
_T(" subroutine setat(ulong index, any value)\n")
_T(" subroutine remove()\n") \
_T(" subroutine removeat(ulong index)\n") \
_T(" function any getnext()\n") \
_T(" function any getprevious()\n") \
_T(" function any getandnext()\n") \
_T(" subroutine rewind()\n") \
_T(" function any getfirst()\n") \
_T(" function any getlast()\n") \
_T(" subroutine prepend(any value)\n") \
_T(" subroutine inserthere(any value)\n") \
_T(" subroutine insertbefore(ulong index, any value)\n") \
_T(" subroutine insertafter(ulong index, any value)\n") \
_T(" function boolean hasnext()\n") \
_T(" function ulong position()\n") \
_T(" subroutine sort(powerobject apo_comparator, string cmpfunc)\n") \
_T("end class\n")
};
return (LPCTSTR)classDesc;
}
// PBX_CreateNonVisualObject is called by PowerBuilder to create a C++ class
// that corresponds to the PBNI class created by PowerBuilder.
PBXEXPORT PBXRESULT PBXCALL PBX_CreateNonVisualObject
(
IPB_Session * session,
pbobject obj,
LPCTSTR className,
IPBX_NonVisualObject ** nvobj
)
{
// The name must not contain upper case
if (_tcscmp(className, _T("uo_list")) == 0)
*nvobj = new List(session);
if (_tcscmp(className, _T("uo_vector")) == 0)
*nvobj = new Vector(session);
return PBX_OK;
}