using sdk

Post questions, comments and feedback to our 3Dconnexion Windows Development Team.

Moderator: Moderators

kit
Posts: 16
Joined: Tue Aug 12, 2008 4:28 am

using sdk

Post by kit »

Hi all!! I don't understand. When I try to download sdk for windows I read a message:

"The Windows SDK (TDxInput.dll) installs when you install 3DxSoftware. You can find TDxInput.dll in ..\Program Files\3Dconnexion\3Dconnexion 3DxSoftware\3DxWare\win32 or \win64."


So, I don't understand: why I have no header files, and *.ib files ? I have to work with this library only by using the *.dll file ???

The second question is: I downloaded Cube3DPolling example (for windows), how it works ?? how it uses TDxInput.dll ???

Thank you, for your help
sincerely yours,
kit
jwick
Moderator
Moderator
Posts: 3341
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Post by jwick »

Hi kit,

3DxInput (TDxInput) is a COM server. There are no headers. The best thing to look at is the example you already downloaded, and the "Windows COM SDK Documentation" from the same download page where you got the example.

Essentially, you connect to the COM server, sign up for events, then handle the events as they are produced from the device.

If you are unfamiliar with COM, we have other alternatives for you.

Jim
3Dx Software Development
kit
Posts: 16
Joined: Tue Aug 12, 2008 4:28 am

Post by kit »

Thanks jwick!!
sincerely yours,
kit
kit
Posts: 16
Joined: Tue Aug 12, 2008 4:28 am

Post by kit »

So, If I want to develop applications that uses this mouse I have to use COM ?
sincerely yours,
kit
jwick
Moderator
Moderator
Posts: 3341
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Post by jwick »

No. You have many choices. Which you choose depends to quite an extent on the structure of your program.

If you are using a language that supports COM well (e.g., VB) COM is a good choice. If your application already uses COM extensively, it is a good choice.

If you have a legacy app that uses Win32 or MFC, there is an SDK in the archive section of the download page that would work well for you.

If you have a game that uses DirectX, you may want to use DirectInput. If your game draws constantly, there is a polling method that works well. If you use an event model, DirectInput also works well generating events.

If you have a new Windows based app, Raw Input works very well. It also supports multiple devices in a very straightforward manner.

Finally, if you don't have an event loop, you can use the HID API to get the raw data from the device via a file handle.

Choose whichever method makes the most sense for your application structure.

Jim
3Dx Software Development
kit
Posts: 16
Joined: Tue Aug 12, 2008 4:28 am

Post by kit »

So, as I understand I can create simple win32 application and use this library ? (As sample MFCCube3d ) ??
sincerely yours,
kit
kit
Posts: 16
Joined: Tue Aug 12, 2008 4:28 am

Post by kit »

even console win32 application ?
sincerely yours,
kit
ngomes
Moderator
Moderator
Posts: 3344
Joined: Mon Nov 27, 2006 7:22 am
Contact:

Post by ngomes »

Hi kit,

If you use 3DxInput (the COM SDK), headers are generated from the type library (tdxinput.dll). The file is included in the driver installation.

If you're using Microsoft's development tools, check the MSDN article on the #import directive.

Anyway, jwick is right: use whatever mechanism makes most sense for your application.
Nuno Gomes
kit
Posts: 16
Joined: Tue Aug 12, 2008 4:28 am

Post by kit »

As I see and as I understand I have to use COM at any case, because in this document

3DxInputI_API.pdf

I see such strings:

The 3DxInput API is available from 3DxSoftware v3.1 and later. You can use any
programming language that supports COM to use 3DxInput to add support for
3Dconnexion input devices. The COM server is implemented as the dynamic load
library TDxInput.dll which is automatically registered when 3DxWare is installed.


So, I must use COM !!

Am I right ?
sincerely yours,
kit
jwick
Moderator
Moderator
Posts: 3341
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Post by jwick »

No, you don't have to use COM. That document only describes the COM interface. 3DxInput is the name of the COM interface (spelled TDxInput in most cases because many things can't start with a numeral).

If you want to use COM, by all means...
You can use COM even with console apps, but what a PITA that would be.
kit
Posts: 16
Joined: Tue Aug 12, 2008 4:28 am

Post by kit »

Uh !!! Thanks you, but I don't understand. I said console win32 application, because as for me it is the simpliest app. It's not important.

Can you say.. Is MFCCube3d application use COM ?

You see I cannot find any app that recieves events from 3DxInput and DO NOT uses COM
sincerely yours,
kit
kit
Posts: 16
Joined: Tue Aug 12, 2008 4:28 am

Post by kit »

Is there any documentation by using this library without COM ?
sincerely yours,
kit
jwick
Moderator
Moderator
Posts: 3341
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Post by jwick »

If you use 3DxInput, you are using COM. It is a COM server. The MFCCube3D 3DxInput example shows how to use COM in MFC to access 3DxInput.

If you don't want to use COM/3DxInput the "old SDK" (Win32/MFC) can be found at:
www.3dconnexion.com -> support -> driver downloads -> SpaceTraveler -> Archive -> 3DxWare SDK.

If you want HID, RawInput (WM_INPUT) or DirectInput examples, there are some on our ftp site:
ftp://ftp-us.3dconnexion.com/
login: examples
password: examples
kit
Posts: 16
Joined: Tue Aug 12, 2008 4:28 am

Post by kit »

Thanks. Can you say, I need sdk for SpaceNavigator. Can I use sdk that you suggests me ?
sincerely yours,
kit
ngomes
Moderator
Moderator
Posts: 3344
Joined: Mon Nov 27, 2006 7:22 am
Contact:

Post by ngomes »

Hi kit,

I think we need to understand what type of application are you developing. Is a normal Windows application (where you have a message loop), DirectX -based, console?

The tools that you are also relevant (a COM server is very easy to use in VB, for example).
Post Reply