Option Explicit
Private Declare Function PrintDialog Lib "comdlg32.dll" Alias "PrintDlgA" _
                         (pPrintdlg As PRINTDLG_TYPE) As Long

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
                    (hpvDest As Any, _
                     hpvSource As Any, _
                     ByVal cbCopy As Long)
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32" _
                         (ByVal hMem As Long) As Long
Private Declare Function GlobalAlloc Lib "kernel32" _
                         (ByVal wFlags As Long, _
                          ByVal dwBytes As Long) As Long
Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long) As Long
红字说用户定义类型未定义,请问我该如何修改?

解决方案 »

  1.   

    public
      

  2.   

    pPrintdlg As PRINTDLG_TYPEPRINTDLG_TYPE类型未定义
      

  3.   

    这个类型PRINTDLG_TYPE要在api声明前定义,或放在其它模块中,用public类型
      

  4.   

    在它下面加个类型定义啊:
    Private Type PRINTDLG_TYPE
            lStructSize As Long
            hwndOwner As Long
            hDevMode As Long
            hDevNames As Long
            hdc As Long
            flags As Long
            nFromPage As Integer
            nToPage As Integer
            nMinPage As Integer
            nMaxPage As Integer
            nCopies As Integer
            hInstance As Long
            lCustData As Long
            lpfnPrintHook As Long
            lpfnSetupHook As Long
            lpPrintTemplateName As String
            lpSetupTemplateName As String
            hPrintTemplate As Long
            hSetupTemplate As Long
    End Type
      

  5.   

    这个报错信息应该是比较明确的吧, 就是类型未定义.
    PRINTDLG_TYPE是一个自定义类型的数据