01
02
03
04
05
06
07
08
09
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
7 basic rules for manipulating Variants
A crash course in COM, OLE Automation and ActiveX technologies
Absoft Pro Fortran
Accessing data with SafeArrayAccessData
Accessing data with SafeArrayGetElement and SafeArrayPutElement
Accessing the data in a Safe Array
Additional considerations
ANSI (Single-byte), Multibyte and Unicode strings
Array and Safe Array Fundamentals
Arrays in Visual Basic
Automatic Safe Arrays
Automation with f90VB
Basic terminology and mechanics of COM
BStrings
Calling conventions
Calling Fortran from Visual Basic and Visual Basic for Applications
Checking the type and obtaining the contents of a Variant
Clearing Variants
Compaq (Digital) Visual Fortran
Compiler-specific details regarding DLLs, calling conventions and name-mangling
Copying Variants
Creating an instance of an object
Creating and initializing Variants
Creating Fortran Subroutines Callable From Visual Basic
Creating Safe Arrays
De-referencing chained Variants
Dealing with name-mangling
Declaring an array of strings arguments
Declaring arguments in Fortran procedures callable from Visual Basic and VBA
Declaring array arguments
Declaring external functions and subroutines in Visual Basic
Declaring string arguments
Declaring Variant arguments
Declaring Variants with f90VB
Destroying Safe Arrays
Eight basic rules for manipulating BStrings
f90VB Fortran Safe Array structures (FSA)
f90VB Safe Array handles
F90VB User Manual
Figure 1.1
Figure 1.2
Figure 1.3
Figure 1.4
Figure 1.5
Figure 1.6
Figure 1.7
Figure 1.8
Figure 2.1
Figure 4.1
Figure 4.2
Figure 4.3
Figure 4.4
Figure 4.5
Figure 4.6
Figure 4.7
Figure 5.1
Figure 5.2
Figure 6.1
Figure 6.10
Figure 6.11
Figure 6.12
Figure 6.2
Figure 6.3
Figure 6.4
Figure 6.5
Figure 6.6
Figure 6.7
Figure 6.8
Figure 6.9
Fixed OLE strings
Fixed-length strings
Fortran DLLs
Fortran OLE strings
Fortran strings
Handling arguments by reference
Initializing OLE
Lahey/Fujitsu Fortran 95
Manipulating the object through its properties and methods
Multibyte strings
Name-mangling
Obtaining an interface to a running Automation server
Obtaining Information about a Safe Array
Obtaining information about errors and exceptions
OLE strings
Optional and named arguments
Passing arguments by value and by reference
Passing Arrays
Passing Basic data types (Integer, Boolean and Real types)
Passing strings by reference
Passing strings by value
Passing Variants
Performing OLE/COM-conforming conversion of data types
Safe Array representations in f90VB
Safe Arrays in Fortran
Sales and unpgrade information
Sales and upgrade information
Setting and reading Safe Array features
Seven basic rules for manipulating Safe Arrays
String constants passed as arguments to subroutines
String Fundamentals
String representations in f90VB
Strings as arguments to external procedures
Strings in Visual Basic and Visual Basic For Applications
Summary
Support Information
Table 2.1
Table 2.2
Table 2.3
Table 3.1
Table 3.2
Table 3.3
Table 4.1
Table 6.1
Table 6.2
Terminating the object
The definition of a Variant
The IDispatch interface and even more terminology
Uninitializing OLE
USE-ing f90VB Modules
Using f90VB to access Visual Basic procedures from Fortran
Using f90VB to control ActiveX objects
Variable-length strings
Variant arithmetic and logical operations
Variant Fundamentals
Visual Basic (OLE/COM) Safe Arrays and Fortran Dynamic Arrays
Working with collections and object hierarchies
Working with Events