Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. COM
  4. InvokeHelper

InvokeHelper

Scheduled Pinned Locked Moved COM
helpc++
15 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • V Vi2

    No, this is uninitialized variable. But it doesn't help as I see the code of MFC. So, I think that VTS_PI1 is unapplicable here. Use VTS_PUI1 or VTS_PI4.

    With best wishes, Vita

    M Offline
    M Offline
    MsmVc
    wrote on last edited by
    #5

    Ok i use

    VTS_PUI1 or VTS_PI4.

    both now error is same. If you need example code then i will give you.I need help.

    V 1 Reply Last reply
    0
    • M MsmVc

      Ok i use

      VTS_PUI1 or VTS_PI4.

      both now error is same. If you need example code then i will give you.I need help.

      V Offline
      V Offline
      Vi2
      wrote on last edited by
      #6

      What declaration of method 0x60030002 do you have? What is a "Test objXl"?

      With best wishes, Vita

      M 1 Reply Last reply
      0
      • V Vi2

        What declaration of method 0x60030002 do you have? What is a "Test objXl"?

        With best wishes, Vita

        M Offline
        M Offline
        MsmVc
        wrote on last edited by
        #7

        See i don't much about InvokeHelper.I had download a project from Codeproject and make new project with the help of downloaded project.I am sending you a project link which have example code and Dll. Link is here Automating Microsoft Excel and Word Together[^] I am creating a new dll and write a new function.

        Public Function Get_List(SheetNumber As Long) As String
        ' Dim myExcel As Object
        Dim Counter1 As Integer
        Dim Returnstring As String
        Dim myWorkBook As Excel.Workbook
        Dim tworksheet As Excel.Worksheet

        ' myExcel = CreateObject("Excel.Application")
        ' myWorkBook = myExcel.Workbook.Open("C:\sample.xls")

            For Each tworksheet In myWorkBook.Worksheets
        '        Me.ListBox1.Items.Add (tworksheet.Name)
        Returnstring = tworksheet.Name
        If iindex = Counter1 Then
        Get\_List = Returnstring
        
        End If
        Counter1 = Counter1 + 1
            Next
        

        End Function
        And try to access in vc++.Then i am getting error

        Plz help me

        V L 2 Replies Last reply
        0
        • M MsmVc

          See i don't much about InvokeHelper.I had download a project from Codeproject and make new project with the help of downloaded project.I am sending you a project link which have example code and Dll. Link is here Automating Microsoft Excel and Word Together[^] I am creating a new dll and write a new function.

          Public Function Get_List(SheetNumber As Long) As String
          ' Dim myExcel As Object
          Dim Counter1 As Integer
          Dim Returnstring As String
          Dim myWorkBook As Excel.Workbook
          Dim tworksheet As Excel.Worksheet

          ' myExcel = CreateObject("Excel.Application")
          ' myWorkBook = myExcel.Workbook.Open("C:\sample.xls")

              For Each tworksheet In myWorkBook.Worksheets
          '        Me.ListBox1.Items.Add (tworksheet.Name)
          Returnstring = tworksheet.Name
          If iindex = Counter1 Then
          Get\_List = Returnstring
          
          End If
          Counter1 = Counter1 + 1
              Next
          

          End Function
          And try to access in vc++.Then i am getting error

          Plz help me

          V Offline
          V Offline
          Vi2
          wrote on last edited by
          #8

          Sorry, it requires so much time which I don't have. Try to call the simpler function, for example,

          Public Function Get_List(SheetNumber As Long) As String
          Get_List = "aaa"
          End Function

          With best wishes, Vita

          M 1 Reply Last reply
          0
          • V Vi2

            Sorry, it requires so much time which I don't have. Try to call the simpler function, for example,

            Public Function Get_List(SheetNumber As Long) As String
            Get_List = "aaa"
            End Function

            With best wishes, Vita

            M Offline
            M Offline
            MsmVc
            wrote on last edited by
            #9

            i am doing something wrong.See I add function in Dll

            Public Function Get_List(SheetNumber As Long) As String
            Get_List = "aaa"
            End Function

            And Declaration in m2msofficecom.h file

            VARIANT Get_List(long* number);

            And Define in m2msofficecom.cpp

            VARIANT _clsExcel::Get_List(long* number)
            {
            VARIANT result;
            static BYTE parms[] =
            VTS_PI4;
            InvokeHelper(0x60030002, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
            number);
            return result;
            }

            And Call in MainDlg Class

            _clsExcel objXl;
            long ty=1;
            objXl.Get_List(&ty);

            but still i am getting same error. plz help me.

            V 1 Reply Last reply
            0
            • M MsmVc

              i am doing something wrong.See I add function in Dll

              Public Function Get_List(SheetNumber As Long) As String
              Get_List = "aaa"
              End Function

              And Declaration in m2msofficecom.h file

              VARIANT Get_List(long* number);

              And Define in m2msofficecom.cpp

              VARIANT _clsExcel::Get_List(long* number)
              {
              VARIANT result;
              static BYTE parms[] =
              VTS_PI4;
              InvokeHelper(0x60030002, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
              number);
              return result;
              }

              And Call in MainDlg Class

              _clsExcel objXl;
              long ty=1;
              objXl.Get_List(&ty);

              but still i am getting same error. plz help me.

              V Offline
              V Offline
              Vi2
              wrote on last edited by
              #10

              I can only propose that 0x60030002 is not Get_List function. You can look at DLL by "Ole/COM Viewer" and find the declaration of _clsExcel interface. Can you post the direct reference to your DLL?

              With best wishes, Vita

              M 1 Reply Last reply
              0
              • V Vi2

                I can only propose that 0x60030002 is not Get_List function. You can look at DLL by "Ole/COM Viewer" and find the declaration of _clsExcel interface. Can you post the direct reference to your DLL?

                With best wishes, Vita

                M Offline
                M Offline
                MsmVc
                wrote on last edited by
                #11

                please explain in detail.i am also think about 0x60030002 is not Get_List function.But how can i find it.

                V 1 Reply Last reply
                0
                • M MsmVc

                  please explain in detail.i am also think about 0x60030002 is not Get_List function.But how can i find it.

                  V Offline
                  V Offline
                  Vi2
                  wrote on last edited by
                  #12

                  VB creates the DLL, which has a TLB inside. Run the "OLE/COM Viewer" and File -> View TypeLib.... Perhaps there is a MFC Wizard which also can import this TLB into code. But I don't know about it, because I use #import directive in C++ client code.

                  With best wishes, Vita

                  M 2 Replies Last reply
                  0
                  • V Vi2

                    VB creates the DLL, which has a TLB inside. Run the "OLE/COM Viewer" and File -> View TypeLib.... Perhaps there is a MFC Wizard which also can import this TLB into code. But I don't know about it, because I use #import directive in C++ client code.

                    With best wishes, Vita

                    M Offline
                    M Offline
                    MsmVc
                    wrote on last edited by
                    #13

                    ok i am trying to do that.

                    1 Reply Last reply
                    0
                    • V Vi2

                      VB creates the DLL, which has a TLB inside. Run the "OLE/COM Viewer" and File -> View TypeLib.... Perhaps there is a MFC Wizard which also can import this TLB into code. But I don't know about it, because I use #import directive in C++ client code.

                      With best wishes, Vita

                      M Offline
                      M Offline
                      MsmVc
                      wrote on last edited by
                      #14

                      Thanks for smart ans.. Problem solved.

                      1 Reply Last reply
                      0
                      • M MsmVc

                        See i don't much about InvokeHelper.I had download a project from Codeproject and make new project with the help of downloaded project.I am sending you a project link which have example code and Dll. Link is here Automating Microsoft Excel and Word Together[^] I am creating a new dll and write a new function.

                        Public Function Get_List(SheetNumber As Long) As String
                        ' Dim myExcel As Object
                        Dim Counter1 As Integer
                        Dim Returnstring As String
                        Dim myWorkBook As Excel.Workbook
                        Dim tworksheet As Excel.Worksheet

                        ' myExcel = CreateObject("Excel.Application")
                        ' myWorkBook = myExcel.Workbook.Open("C:\sample.xls")

                            For Each tworksheet In myWorkBook.Worksheets
                        '        Me.ListBox1.Items.Add (tworksheet.Name)
                        Returnstring = tworksheet.Name
                        If iindex = Counter1 Then
                        Get\_List = Returnstring
                        
                        End If
                        Counter1 = Counter1 + 1
                            Next
                        

                        End Function
                        And try to access in vc++.Then i am getting error

                        Plz help me

                        L Offline
                        L Offline
                        Lost User
                        wrote on last edited by
                        #15

                        :)

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups