Here is something which can be so handy for your programming.
Attach an interface to your DDT form.

The DDTForm_CreateObject macro is used to create the object and attach it to a form.
You can use the iForm variable right away.

If you use this macro you must release the object when the form terminates, use the DDTForm_DestroyObject macro in the WM_DESTROY to do so.

If you need the object, you should obtain it during the message.
You can use the DDTForm_GetObject macro to obtain a reference.
Important to understand the reference is lost when the message is done
Don't try to make it static bu use this macro during each message where you need the object.
This is shown in the small example below.

Code:
' Place this in WM_INITDIALOG
Macro DDTForm_CreateObject
    Local iForm As IDDTForm
    iForm = Class "clsDDTForm"
    iForm.BackDoor.hWnd = CbHndl
    Call SetProp( CbHndl, "IDDTForm", ObjPtr( iForm ) )
    iForm.Addref()
End Macro

' Place this in WM_DESTROY
Macro DDTForm_DestroyObject
    iForm = Nothing
    Poke Dword, VarPtr( iForm ), GetProp( CbHndl, "IDDTForm" )
    RemoveProp( CbHndl, "IDDTForm" )
End Macro

' Place this in each occasion you need the object.
Macro DDTForm_GetObject
    iForm = Nothing
    Poke Dword, VarPtr( iForm ), GetProp( CbHndl, "IDDTForm" )
    iForm.Addref()
End Macro

Class clsDDTForm

    Instance m_hWnd As Long

    Class Method Create
    End Method

    Class Method Destroy
    End Method

    Interface IDDTForm: Inherit IUnknown

        Property Get BackDoor As DDTForm_IBackDoor
            Property = Me
        End Property

        Property Get Text() As String
            Local T As String
            Dialog Get Text m_hWnd To T
            Property = T
        End Property

        Property Set Text( ByVal value As String )
            Dialog Set Text m_hWnd, value
        End Property

        Property Get Enable() As Long
            Property = IsWindowEnabled( m_hWnd )
        End Property

        Property Set Enable( ByVal value As Long )
            EnableWindow( m_hWnd, value )
        End Property

    End Interface

    Interface DDTForm_IBackDoor: Inherit IUnknown

        Property Set hWnd( ByVal value As Long )
            m_hWnd = value
        End Property

    End Interface

End Class
The following code is the content of dialog callback procedure, it shows how you can extend the DDT form with an object.
Code:
    Select Case nCbMsg
    Case %WM_INITDIALOG
    
        DDTForm_CreateObject
        iForm.Text = Time$
    
    Case %WM_COMMAND

        Select Case CbCtl
        Case %IDOK

            Select Case CbCtlMsg
            Case %BN_CLICKED                
                
                DDTForm_GetObject
                MsgBox iForm.Text & " - OK", %MB_TASKMODAL, "OOP"

            End Select

        Case %IDCANCEL

            Select Case CbCtlMsg
            Case %BN_CLICKED

                DDTForm_GetObject
                MsgBox iForm.Text & " - Cancel", %MB_TASKMODAL, "OOP"

            End Select

        End Select

    Case %WM_DESTROY
        DDTForm_DestroyObject
    End Select