-
Notifications
You must be signed in to change notification settings - Fork 5
/
NEWS
124 lines (109 loc) · 5.3 KB
/
NEWS
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
119
120
121
122
123
124
v0.4.3
* bug fix: com-wrapper's methods are now specialized on particular
wrapper class
v0.4.2
* new feature: COM-WRAPPER-CLASS and COM-WRAPPER classes
** COM-WRAPPER encapsulates particular com-object and
all of its interfaces. It is roughly identical to
.NET's "runtime callable wrapper".
It calls CoCreateInstanceEx inside its SHARED-INITIALIZE
method.
** COM-WRAPPER-CLASS is a metaclass for all COM-WRAPPERs.
In addition to CLSID it holds all of the interface
classes that particular com class implements.
* :clsid initarg for COM-CLASSes now accepts a string.
In this case, string is converted into CLSID by the mean of
CLSID-FROM-STRING(i.e. "CLSIDFromString") function
* Interface's translator(CONVERT-VALUE) now accepts
COM-OBJECTs and COM-WRAPPERs
v0.4.1
* COM-CLASS now inherits from COM-OBJECT
* REGISTER-CLASS-OBJECT function does not accept
UNKNOWN parameter any more. An interface is acquired directly
from the class metaobject
v0.4.0
* Hugely improved COM-related part of the library.
** FIND-INTERFACE-CLASS-BY-IID function has been removed.
FIND-INTERFACE-CLASS function now accepts IID structures.
** New class: COM-CLASS. A metaclass for all COM-OBJECT's
descendants that must be registrable by COM runtime.
** New function: FIND-COM-CLASS. This function is identical to
FIND-INTERFACE-CLASS function except that is performs
a lookup for COM-CLASS rather than for COM-INTERFACE-CLASS
** IID and CLSID types have been redefined to be interface and class
designators respectively. Their translators now accept not only
GUID structures but also interface/object classes and symbols
which designate those classes(i.e. their names).
** COM interface methods' generic functions must now be of
COM-GENERIC-FUNCTION class
** Added more COM-related constants, functions, structures
and error codes
** Added CLASS-FACTORY(i.e. IClassFactory) interface
* Notice that COM interop works only partially on SBCL:
COM interfaces which are implemented by lisp-side COM-objects
should not be passed into foreign code.
SBCL does not support stdcall callbacks at the moment, so calling
lisp interfaces from anywhere except lisp will likely cause
stack corruption.
* Added some examples of COM usage.
* Added more bindings(e.g. system time stuff)
* Some minor changes in DOORS package:
** OS-VERSION-INFO's constructor is now named MAKE-OS-VERSION-INFO
** Several error code constants were moved into DOORS.COM package
** WINDOWS-CONDITION's printer now uses FormatMessage for all
system error codes
v0.3.2
* bug fix: The process of determining OS version was erroneous
v0.3.1
* bug fix: Fixed COM-OBJECT's RELEASE method
v0.3.0
* Fixed some misprints in src/console.lisp
* PEB, TEB and associated structures were removed
* Added PSAPI bindings
v0.2.3
* Fixed various bugs and misprints. Now the library could be compiled
under Vista and Win7.
v0.2.2
* All struct constructors w/o parameters were replaced by constructors
with keyword parameters, so the library could be built on CCL
v0.2.1
* All "-ex" suffixes were substituted by "*" suffixes.
(i.e. LOAD-LIBRARY-EX was renamed LOAD-LIBRARY* and so on)
This makes names more lispy.
v0.2.0
* UUID, CLSID, FMTID and IID types have been redefined as and aliases for
GUID. Also, removed all related stuff, such as their accessors and so
on. Use GUID stuff
* CLSID and IID symbols now belong to DOORS.COM package
* Names of external functions were lispified even more:
** Every function name that has a "Get" prefix is translated by
removing that prefix
** Every function name that has a "Set" prefix is translated by
removing that prefix and forming a (SETF name) function name
** For every function which name has a "Get" or "Set" prefix and which
either has no parameters at all or all parameters of which are
either optional or keyword there is also a corresponding
symbol macro.
** Every function name that has a "Query" prefix and for which there
exists a corresponding setter (a function which name begins with
"Set") is translated as a name that has a "Get" prefix.
Example: "GetConsoleMode" ==> CONSOLE-MODE
"SetConsoleMode" ==> (SETF CONSOLE-MODE)
+ CONSOLE-MODE symbol macro
* Most enums were converted to Virgil's strongly typed enums
* Security stuff has been moved from #:DOORS package into #:DOORS.SECURITY
package
* Added "pascal string" type
* Added more system stuff(handle, process and dll stuff)
v0.1.1
* bug fix: Fixed return value processing in READ-CONSOLE and
READ-CONSOLE-INPUT functions
v0.1.0
* Bingings to console subsystem
v0.0.3
* Interface methods in interface definition can now refer to
that interface type.
v0.0.2
* Fixed some bugs with interface reference counting
v0.0.1
* Initial release.