Skip to main content

Hi,

I have been using Microfocus NetExpress v3.10 for some time, and did some code in GUI-based (using GS) application with winAPI codes as follows;

environment division.
special-names.
  call-convention 74 is winAPI.

But lately I am coding with COM using "Add Class" wizard under MTS (Microsoft Transaction Server). From the given code (under wizard), where am I going to insert the above code??

The given code (from wizard) is listed below as follows;

$set ooctrl( p)
*>-----------------------------------------------------------
*> Class description
*>-----------------------------------------------------------
class-id. newClass
inherits from olebase.

object section.
class-control.
newClass is class "newclass"
*> OCWIZARD - start list of classes
objectcontext is class "objectcontext"
olebase is class "olebase"
oleSafeArray is class "olesafea"
oleVariant is class "olevar".
*> OCWIZARD - end list of classes
*>---USER-CODE. Add any additional class names below.

*>-----------------------------------------------------------
working-storage section. *> Definition of global data
*>-----------------------------------------------------------

*>-----------------------------------------------------------
class-object. *> Definition of class data and methods
*>-----------------------------------------------------------
object-storage section.

*> OCWIZARD - start standard class methods
*>-----------------------------------------------------------
*> Return details about the class.
*> If you have a type library, theClassId and theInterfaceId
*> here MUST match.
*> theProgId must match the registry entry for this class
*> (a zero length string implies using the class file name)
*> theClassId must match the CLSID stored in the registry.
*> theVersion is currently ignored (default 1 used).
*>-----------------------------------------------------------
method-id. queryClassInfo.
linkage section.
01 theProgId pic x(256).
01 theClassId pic x(39).
01 theInterfceId pic x(39).
01 theVersion pic x(4) comp-5.
01 theDescription pic x(256).
01 theThreadModel pic x(20).
procedure division using by reference theProgId
by reference theClassId
by reference theInterfceId
by reference theVersion
by reference theDescription
by reference theThreadModel.
move z"{67786716-362D-4D7E-B6BB-D2826B5F5E2C}" to theClassId
move z"{25322CB6-E966-41D9-B33C-662AA3544A9E}" to theInterfceId
move z"Description for class newClass"
to theDescription
move z"Apartment" to theThreadModel
exit method.
end method queryClassInfo.

*>-----------------------------------------------------------
*> Return details about the type library - delete if unused.
*> theLocale is currently ignored (default 0 used).
*> theLibraryName is a null terminated string used for auto
*> registration, and supports the following values:
*> <no string> - Library is embedded in this binary
*> <number> - As above, with this resource number
*> path - Library is at this (full path) location
*>-----------------------------------------------------------
method-id. queryLibraryInfo.
linkage section.
01 theLibraryName pic x(512).
01 theMajorVersion pic x(4) comp-5.
01 theMinorVersion pic x(4) comp-5.
01 theLibraryId pic x(39).
01 theLocale pic x(4) comp-5.
procedure division using by reference theLibraryName
by reference theMajorVersion
by reference theMinorVersion
by reference theLibraryId
by reference theLocale.
move 1 to theMajorVersion
move 0 to theMinorVersion
move z"{5C0A6E99-9C7E-4481-9DDB-660DE3B91760}" to theLibraryId
exit method.
end method queryLibraryInfo.
*>-----------------------------------------------------------

*> OCWIZARD - end standard class methods

end class-object.

*>-----------------------------------------------------------
object. *> Definition of instance data and methods
*>-----------------------------------------------------------
object-storage section.

*> OCWIZARD - start standard instance methods
*> OCWIZARD - end standard instance methods

end object.

end class newClass.


#netexpress3.10
#COM
#componentwizard

Hi,

I have been using Microfocus NetExpress v3.10 for some time, and did some code in GUI-based (using GS) application with winAPI codes as follows;

environment division.
special-names.
  call-convention 74 is winAPI.

But lately I am coding with COM using "Add Class" wizard under MTS (Microsoft Transaction Server). From the given code (under wizard), where am I going to insert the above code??

The given code (from wizard) is listed below as follows;

$set ooctrl( p)
*>-----------------------------------------------------------
*> Class description
*>-----------------------------------------------------------
class-id. newClass
inherits from olebase.

object section.
class-control.
newClass is class "newclass"
*> OCWIZARD - start list of classes
objectcontext is class "objectcontext"
olebase is class "olebase"
oleSafeArray is class "olesafea"
oleVariant is class "olevar".
*> OCWIZARD - end list of classes
*>---USER-CODE. Add any additional class names below.

*>-----------------------------------------------------------
working-storage section. *> Definition of global data
*>-----------------------------------------------------------

*>-----------------------------------------------------------
class-object. *> Definition of class data and methods
*>-----------------------------------------------------------
object-storage section.

*> OCWIZARD - start standard class methods
*>-----------------------------------------------------------
*> Return details about the class.
*> If you have a type library, theClassId and theInterfaceId
*> here MUST match.
*> theProgId must match the registry entry for this class
*> (a zero length string implies using the class file name)
*> theClassId must match the CLSID stored in the registry.
*> theVersion is currently ignored (default 1 used).
*>-----------------------------------------------------------
method-id. queryClassInfo.
linkage section.
01 theProgId pic x(256).
01 theClassId pic x(39).
01 theInterfceId pic x(39).
01 theVersion pic x(4) comp-5.
01 theDescription pic x(256).
01 theThreadModel pic x(20).
procedure division using by reference theProgId
by reference theClassId
by reference theInterfceId
by reference theVersion
by reference theDescription
by reference theThreadModel.
move z"{67786716-362D-4D7E-B6BB-D2826B5F5E2C}" to theClassId
move z"{25322CB6-E966-41D9-B33C-662AA3544A9E}" to theInterfceId
move z"Description for class newClass"
to theDescription
move z"Apartment" to theThreadModel
exit method.
end method queryClassInfo.

*>-----------------------------------------------------------
*> Return details about the type library - delete if unused.
*> theLocale is currently ignored (default 0 used).
*> theLibraryName is a null terminated string used for auto
*> registration, and supports the following values:
*> <no string> - Library is embedded in this binary
*> <number> - As above, with this resource number
*> path - Library is at this (full path) location
*>-----------------------------------------------------------
method-id. queryLibraryInfo.
linkage section.
01 theLibraryName pic x(512).
01 theMajorVersion pic x(4) comp-5.
01 theMinorVersion pic x(4) comp-5.
01 theLibraryId pic x(39).
01 theLocale pic x(4) comp-5.
procedure division using by reference theLibraryName
by reference theMajorVersion
by reference theMinorVersion
by reference theLibraryId
by reference theLocale.
move 1 to theMajorVersion
move 0 to theMinorVersion
move z"{5C0A6E99-9C7E-4481-9DDB-660DE3B91760}" to theLibraryId
exit method.
end method queryLibraryInfo.
*>-----------------------------------------------------------

*> OCWIZARD - end standard class methods

end class-object.

*>-----------------------------------------------------------
object. *> Definition of instance data and methods
*>-----------------------------------------------------------
object-storage section.

*> OCWIZARD - start standard instance methods
*> OCWIZARD - end standard instance methods

end object.

end class newClass.


#netexpress3.10
#COM
#componentwizard

Tried to encode it in my methods... and the compiler says;

Starting rebuild
Rebuilding D:\\myprog.cbl
D:\\myprog.cbl(167,21): * 63-S Cannot be used in nested program
Rebuild complete with errors

Is there a place where I could use the usual "call-convention is winAPI" code?? I am using the winAPI to print a document using a USBport printer.

 


#Components
#netexpress

Hi,

I have been using Microfocus NetExpress v3.10 for some time, and did some code in GUI-based (using GS) application with winAPI codes as follows;

environment division.
special-names.
  call-convention 74 is winAPI.

But lately I am coding with COM using "Add Class" wizard under MTS (Microsoft Transaction Server). From the given code (under wizard), where am I going to insert the above code??

The given code (from wizard) is listed below as follows;

$set ooctrl( p)
*>-----------------------------------------------------------
*> Class description
*>-----------------------------------------------------------
class-id. newClass
inherits from olebase.

object section.
class-control.
newClass is class "newclass"
*> OCWIZARD - start list of classes
objectcontext is class "objectcontext"
olebase is class "olebase"
oleSafeArray is class "olesafea"
oleVariant is class "olevar".
*> OCWIZARD - end list of classes
*>---USER-CODE. Add any additional class names below.

*>-----------------------------------------------------------
working-storage section. *> Definition of global data
*>-----------------------------------------------------------

*>-----------------------------------------------------------
class-object. *> Definition of class data and methods
*>-----------------------------------------------------------
object-storage section.

*> OCWIZARD - start standard class methods
*>-----------------------------------------------------------
*> Return details about the class.
*> If you have a type library, theClassId and theInterfaceId
*> here MUST match.
*> theProgId must match the registry entry for this class
*> (a zero length string implies using the class file name)
*> theClassId must match the CLSID stored in the registry.
*> theVersion is currently ignored (default 1 used).
*>-----------------------------------------------------------
method-id. queryClassInfo.
linkage section.
01 theProgId pic x(256).
01 theClassId pic x(39).
01 theInterfceId pic x(39).
01 theVersion pic x(4) comp-5.
01 theDescription pic x(256).
01 theThreadModel pic x(20).
procedure division using by reference theProgId
by reference theClassId
by reference theInterfceId
by reference theVersion
by reference theDescription
by reference theThreadModel.
move z"{67786716-362D-4D7E-B6BB-D2826B5F5E2C}" to theClassId
move z"{25322CB6-E966-41D9-B33C-662AA3544A9E}" to theInterfceId
move z"Description for class newClass"
to theDescription
move z"Apartment" to theThreadModel
exit method.
end method queryClassInfo.

*>-----------------------------------------------------------
*> Return details about the type library - delete if unused.
*> theLocale is currently ignored (default 0 used).
*> theLibraryName is a null terminated string used for auto
*> registration, and supports the following values:
*> <no string> - Library is embedded in this binary
*> <number> - As above, with this resource number
*> path - Library is at this (full path) location
*>-----------------------------------------------------------
method-id. queryLibraryInfo.
linkage section.
01 theLibraryName pic x(512).
01 theMajorVersion pic x(4) comp-5.
01 theMinorVersion pic x(4) comp-5.
01 theLibraryId pic x(39).
01 theLocale pic x(4) comp-5.
procedure division using by reference theLibraryName
by reference theMajorVersion
by reference theMinorVersion
by reference theLibraryId
by reference theLocale.
move 1 to theMajorVersion
move 0 to theMinorVersion
move z"{5C0A6E99-9C7E-4481-9DDB-660DE3B91760}" to theLibraryId
exit method.
end method queryLibraryInfo.
*>-----------------------------------------------------------

*> OCWIZARD - end standard class methods

end class-object.

*>-----------------------------------------------------------
object. *> Definition of instance data and methods
*>-----------------------------------------------------------
object-storage section.

*> OCWIZARD - start standard instance methods
*> OCWIZARD - end standard instance methods

end object.

end class newClass.


#netexpress3.10
#COM
#componentwizard

Hi,

If you just drop the environment division and use:-

      class-id. newClass

                inherits from olebase.

      object section.

      class-control.

          newClass is class "newclass"

     *> OCWIZARD - start list of classes

          objectcontext is class "objectcontext"

          olebase is class "olebase"

          oleSafeArray is class "olesafea"

          oleVariant is class "olevar"

     *> OCWIZARD - end list of classes

     *>---USER-CODE. Add any additional class names below.

          .

      special-names.

        call-convention 74 is winAPI.

then it should compile clean.

Regards

David


Hi,

I have been using Microfocus NetExpress v3.10 for some time, and did some code in GUI-based (using GS) application with winAPI codes as follows;

environment division.
special-names.
  call-convention 74 is winAPI.

But lately I am coding with COM using "Add Class" wizard under MTS (Microsoft Transaction Server). From the given code (under wizard), where am I going to insert the above code??

The given code (from wizard) is listed below as follows;

$set ooctrl( p)
*>-----------------------------------------------------------
*> Class description
*>-----------------------------------------------------------
class-id. newClass
inherits from olebase.

object section.
class-control.
newClass is class "newclass"
*> OCWIZARD - start list of classes
objectcontext is class "objectcontext"
olebase is class "olebase"
oleSafeArray is class "olesafea"
oleVariant is class "olevar".
*> OCWIZARD - end list of classes
*>---USER-CODE. Add any additional class names below.

*>-----------------------------------------------------------
working-storage section. *> Definition of global data
*>-----------------------------------------------------------

*>-----------------------------------------------------------
class-object. *> Definition of class data and methods
*>-----------------------------------------------------------
object-storage section.

*> OCWIZARD - start standard class methods
*>-----------------------------------------------------------
*> Return details about the class.
*> If you have a type library, theClassId and theInterfaceId
*> here MUST match.
*> theProgId must match the registry entry for this class
*> (a zero length string implies using the class file name)
*> theClassId must match the CLSID stored in the registry.
*> theVersion is currently ignored (default 1 used).
*>-----------------------------------------------------------
method-id. queryClassInfo.
linkage section.
01 theProgId pic x(256).
01 theClassId pic x(39).
01 theInterfceId pic x(39).
01 theVersion pic x(4) comp-5.
01 theDescription pic x(256).
01 theThreadModel pic x(20).
procedure division using by reference theProgId
by reference theClassId
by reference theInterfceId
by reference theVersion
by reference theDescription
by reference theThreadModel.
move z"{67786716-362D-4D7E-B6BB-D2826B5F5E2C}" to theClassId
move z"{25322CB6-E966-41D9-B33C-662AA3544A9E}" to theInterfceId
move z"Description for class newClass"
to theDescription
move z"Apartment" to theThreadModel
exit method.
end method queryClassInfo.

*>-----------------------------------------------------------
*> Return details about the type library - delete if unused.
*> theLocale is currently ignored (default 0 used).
*> theLibraryName is a null terminated string used for auto
*> registration, and supports the following values:
*> <no string> - Library is embedded in this binary
*> <number> - As above, with this resource number
*> path - Library is at this (full path) location
*>-----------------------------------------------------------
method-id. queryLibraryInfo.
linkage section.
01 theLibraryName pic x(512).
01 theMajorVersion pic x(4) comp-5.
01 theMinorVersion pic x(4) comp-5.
01 theLibraryId pic x(39).
01 theLocale pic x(4) comp-5.
procedure division using by reference theLibraryName
by reference theMajorVersion
by reference theMinorVersion
by reference theLibraryId
by reference theLocale.
move 1 to theMajorVersion
move 0 to theMinorVersion
move z"{5C0A6E99-9C7E-4481-9DDB-660DE3B91760}" to theLibraryId
exit method.
end method queryLibraryInfo.
*>-----------------------------------------------------------

*> OCWIZARD - end standard class methods

end class-object.

*>-----------------------------------------------------------
object. *> Definition of instance data and methods
*>-----------------------------------------------------------
object-storage section.

*> OCWIZARD - start standard instance methods
*> OCWIZARD - end standard instance methods

end object.

end class newClass.


#netexpress3.10
#COM
#componentwizard

It is working now.

From the above coding, since my code is using USB redirection printing I also assign from my "Build Setting" the library of \\mstools\\lib\\winspool.lib for it to work.

Thanks David.