 
 /*------------------------------------------------------------------------
    File        : VirtualUI
    Purpose     : 
    Syntax      : 
    Description : 
    Author(s)   : 
    Created     : Wed Aug 19 10:40:54 ART 2020
    Notes       : 
  ----------------------------------------------------------------------*/

USING Progress.Lang.*.

BLOCK-LEVEL ON ERROR UNDO, THROW.

CLASS VirtualUI: 
    DEFINE PRIVATE VARIABLE m_LibHandle AS HANDLE NO-UNDO.
    DEFINE PRIVATE VARIABLE m_VirtualUI AS MEMPTR /*COM-HANDLE*/ NO-UNDO.
    
    CONSTRUCTOR PUBLIC VirtualUI (  ):
        SUPER ().
        LoadLibrary().
        m_VirtualUI = 0.
        m_LibHandle:SET-PARAMETER(1, "MEMPTR", "INPUT-OUTPUT", m_VirtualUI).
        m_LibHandle:INVOKE().
        m_VirtualUI:START(30).
        /*
        MESSAGE "Creating VirtualUI object from class." VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
        CREATE VALUE("Thinfinity.VirtualUI") m_VirtualUI NO-ERROR.
        IF ERROR-STATUS:ERROR = FALSE THEN
            m_VirtualUI:START(30).
        ELSE
            MESSAGE "Error creating VirtualUI object from class." VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
        */
    END CONSTRUCTOR.

    DESTRUCTOR PUBLIC VirtualUI ( ):
        DELETE OBJECT m_LibHandle.
    END DESTRUCTOR.
    
    METHOD PRIVATE VOID LoadLibrary().
        CREATE CALL m_LibHandle.
        ASSIGN m_LibHandle:CALL-NAME = "DllGetInstance"
               m_LibHandle:LIBRARY = "E:\GitHub\dev-main\Products\VirtualUI\bin64\Thinfinity.VirtualUI.dll"
               m_LibHandle:PERSISTENT = TRUE
               m_LibHandle:CALL-TYPE = DLL-CALL-TYPE
               m_LibHandle:LIBRARY-CALLING-CONVENTION = "STDCALL"
               m_LibHandle:RETURN-VALUE-DLL-TYPE = "LONG"
               m_LibHandle:NUM-PARAMETERS = 1.
    END METHOD.

END CLASS.