EDIT: Sorry, it is of course Skype4Com.

I really appreciate any help I can get, I want to develop a Skype userinterface for dissabled people, it must be a downscaled version of Skype, an easier human interface focused on video connection.
I hold a Bachelor degree in electronics Engineering with some programming experience but not too much, I have played around with Delphi some years back.

Edit: I have decided to use Visual Studio 2008 Visual Basic but I do have some problems startin, does anyone have a project which initialises ok that I can start with ?
I have understood so far that I need to:
1) Register the Skype4Com dll, done, I can select it under "add ref".
2) add ref to Skype4Com in my project.
3) use the foloowing line in the "Form1" beginning.

I am running Vista 64bit, Visual Studio 2008 Express, Skype4Com in its newest version.

My Skype is downloaded a week ago and setup with 2 accounts at my 2 laptops and working fine.

My code looks like this:

[Form1.vb]

Public Class Form1
Public WithEvents oSkype As New SKYPE4COMLib.Skype
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub
End Class

The error I get is (In Danish, sorry):
System.InvalidOperationException was unhandled
Message="Der opstod en fejl under oprettelsen af formularen. Se Exception.InnerException for at få yderligere oplysninger. Fejlen er: Hentning af COM-klassefabrikken for komponenten med CLSID {830690FC-BF2F-47A6-AC2D-330BCB402664} mislykkedes pga. følgende fejl: 80040154."
Source="Test"
StackTrace:
ved Test.My.MyProject.MyForms.Create__Instance__[T](T Instance) i 17d14f5c-a337-4978-8281-53493378c1071.vb:linje 190
ved Test.My.MyProject.MyForms.get_Form1()
ved Test.My.MyApplication.OnCreateMainForm() i C:\Users\Peter\AppData\Local\Temporary Projects\Test\My Project\Application.Designer.vb:linje 35
ved Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
ved Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
ved Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
ved Test.My.MyApplication.Main(String[] Args) i 17d14f5c-a337-4978-8281-53493378c1071.vb:linje 81
ved System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
ved Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
ved System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
ved System.Threading.ThreadHelper.ThreadStart()
InnerException: System.Runtime.InteropServices.COMException
Message="Hentning af COM-klassefabrikken for komponenten med CLSID {830690FC-BF2F-47A6-AC2D-330BCB402664} mislykkedes pga. følgende fejl: 80040154."
Source="Test"
ErrorCode=-2147221164
StackTrace:
ved Test.Form1..ctor() i C:\Users\Peter\AppData\Local\Temporary Projects\Test\Form1.vb:linje 2
InnerException:

In the "Immediate Window" it says:
A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in Test.exe

I really do not understand why this does not work, it was copied directly from the "how to" video at Youtube: http://www.youtube.c...feature=related

I do not understand why it does not work, the code is as simple as it gets, I appreciate any support I can get, unfortunately I am new to both Visual Studio VB and Skype4Com.

Thanks Peter

Recommended Answers

All 4 Replies

Hi 12345pj

I've been using SKype4Com for the best part of year now without much problem - but only on 32 bit. There is definitely nothing wrong with your code. I think the real problem lies in successfully installing Skype4com - or any com component - for 64 bit, and how com interop works with it.

WHen you added reference to sKype4com, did you select from the COM components tab of the add reference dialogue? Or did you browse to the dll? If it is listed in the COM tab then it has at least been registered, otherwise you must register it. Normally, we click start >> run>> type "regsvr32 skype4COM.dll", or the full path to the file.

You might try unregistering the file, moving it to C:\skype4COM.dll and registering it again, just to see if it works.

Otherwise, for your system, you may need to explicitly configure launch and access permissions for skype4com in Components Services. Check out the last entry in this thread: http://forums.asp.net/t/1249300.aspx

Good luck

Thank you for your support, yes I have skype4com.dll placed at c:\skype4com\skype4com.dll and I have it registered with the regsvr32 c:\skype4com\skype4com.dll and I added it to my project by the right click + add refference + COM where I just selected it in the list.

I am now trying to do what it says in the post you linked to but I am not sure I guite understand the last part after copying the file to sysWOW64 directory.

I will post again later when I worked a little with it.

Thank you for your support, yes I have skype4com.dll placed at c:\skype4com\skype4com.dll and I have it registered with the regsvr32 c:\skype4com\skype4com.dll and I added it to my project by the right click + add refference + COM where I just selected it in the list.

I am now trying to do what it says in the post you linked to but I am not sure I guite understand the last part after copying the file to sysWOW64 directory.

I will post again later when I worked a little with it.

Added:

I have now tried to do this but I can not "crack the code".

I have copied the dll to Windows\sysWOW64\ dir but I do not quite understand the last part of the solution, unfortunately I am using a Danish version of Windows Vista 64bit so I am not able to find the "component services" as mentioned in the description

"in Component Services, unter the COM+ Application entry's Components tree item. Just right-click - New - Component = Hit Next in Wizard, then Click 'Import component(s) that already registered', then next - then click '32 Bit Registry' check box to see those entries - then scroll down to your items, and select all of them to match your working machine."

Does anyone know if this is in Windows - Control panel - Administration - ????? or is it in Visual studio somewhere ?

I appreciate someone can help me out, I am fairly new to programming and completely new to VS2008 and Visual Basic.NET.

Peter

Finally found the solution, I thought I read half the internet by now but it was there, the solution:

Copied from someones post but it works the same for VB 2008.


In VC# Express, this property is missing, but you can still create an x86 configuration if you know where to look.

It looks like a long list of steps, but once you know where these things are it's a lot easier. Anyone who only has VC# Express will probably find this useful. Once you know about Configuration Manager, it'll be much more intuitive the next time.

1.In VC# Express 2005 [works with 2008 same], go to Tools -> Options.
2.In the bottom-left corner of the Options dialog, check the box that says, "Show all settings".
3.In the tree-view on the left hand side, select "Projects and Solutions".
4.In the options on the right, check the box that says, "Show advanced build configuraions."
5.Click OK.
6.Go to Build -> Configuration Manager...
7.In the Platform column next to your project, click the combobox and select "<New...>".
8.In the "New platform" setting, choose "x86".
9.Click OK.
10.Click Close.
There, now you have an x86 configuration! Easy as pie! :-)

I also recommend using Configuration Manager to delete the Any CPU platform. You really don't want that if you ever have depedencies on 32-bit native DLLs (even indirect dependencies).

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.