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.
  • M MsmVc

    Thanks for reply. But result variable is initialize here

    VARIANT result;

    Sorry can you describe more.

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

    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 1 Reply Last reply
    0
    • 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