Dvorak SIP is not shown in some devices like Pidion - c++

I have built and deployed Dvorak SIP sample from C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CPP\ATL\dvoraksip location. The sample successfully deploys and registers and when I click on Dvorak from the SIP icon at the middle of the tray it is opened in Windows Mobile 5 emulator and some other devices except Pidion BIP-1300-GSM which is running Windows Mobile 5.0.
What is the reason?
I should mention that it is always deployed and registered successfully.
UPDATE
I put DebugMessage in all of the methods.
When I Deploy Dvorak, methods in dvoraksip.cpp are called on device like what happens on Emulator.
When I click the icon in tray in Emulator methods in dvorak_implementation.cpp are called correctly but nothing is called on Pidion device.

I don know what possibly went wrong on your side. There are some pitfalls when using this WM653 sample on Windows Mobile 5. When you switch to WM5 in VS8 configuration manager, the deployment settings have to been adjusted:
Do you have WM5 SDK installed within VS2008 too?
In VS8 ensure that you link ATL statically:
Here is my updated VS2008 project/solution of DVORAK SIP sample using WM5 SDK: http://www.hjgode.de/temp/dvoraksipVS2008_WM5SDK.zip
I tested that on a WM5 device (no Pidion, an Intermec CK60 running WM5):
I have seen that you posted the same question at social.msdn and who knows where too. If the pidion still does not work like a WM5 device, you should consider changing the model.
As an alternative you may use Richard Boling's NumPanel example of a SIP.
Here is the VS8 solution for WM5SDK: http://www.hjgode.de/temp/BolingNumPanel.zip

Related

Xbox 360 Wireless Controller is not working via C++/WinRT and Windows.Gaming.Input API in console application

I trying to use Windows.Gaming.Input API via C++/WinRT from Windows Console Application and it is not working as supposed with Xbox 360 Wireless Controller (reported as Xbox 360 Wireless Receiver for Windows (0x045e:0x0000)).
I got GamepadAdded event, then trying to read gamepad state via gamepad.GetCurrentReading() and seems GamepadReading struct is not filled at all for Xbox 360 Wireless Controller.
Also I found that there is some strange error message on MSVS debug console:
onecoreuap\xbox\devices\api\winrt\pnpdevicewatcher.cpp(500)\Windows.Gaming.Input.dll!00007FFE453AABC7: (caller: 00007FFE453AA367) ReturnHr(1) tid(4e04) 80070006 The handle is invalid.
Xbox One Game Controller (0x045e:0x02d1) is working fine though.
What is wrong with my code? Or this is bug in Windows?
Code is here: https://github.com/DJm00n/cppwinrtgamepad
Using Windows 10 1809, MSVS 2017 15.9.9, cppwinrt v1.0.190211.5, Windows SDK v10.0.17763.0, xusb22.sys v10.0.17163.1, xboxgip.sys v10.0.17163.1.
PS: I also tried UWP Simple3DGameXaml app from https://github.com/microsoft/Windows-universal-samples repo - and both controllers works in it.
This is a known issue. Apparently this is caused by how focus handling works. Windows.Gaming.Input basically doesn't work for console apps as a result, but does work for Win32 or UWP apps that have a window in focus.
Note that the one case where the Xbox One controller worked for you is only because both the user was an admin -and- because you had developer mode enabled. It wouldn't work from a console app at all otherwise.
If you need game controller support for a legacy Win32 console app, you should use XINPUT. See this blog post.
In order to help us investigate this issue more clearly, could you please share your Visual Studio 2017 version to us? You can get version info selecting Help -> About Microsoft Visual Studio, then selecting Copy Info from the right side of the About dialogue.
Could you please check if you can reproduce this issue on 1903 with SDK 18362?
By the way, it will be better if you can upgrade your project dependencies as well, what you are using is an old version of the Microsoft.Windows.CppWinRT NuGet package: 1.0.190211.5. The current latest stable version is v2.0.190722.3.
Besides, the C++ Language Standard was set in project properties, but the value was not set. This should be set to ISO C++17 Standard (/std:c++17) under Project Properties -> C/C++ > Language > C++ Language Standard.
Thanks for your collaboration.

Air Native Extensions: Released Air App w/Windows Native Extension works fine on develpment PC but not on other computers

I'm working on an AIR app that uses a Native Extension for windows that I developed for the same project. The app calls an ANE method called pingFunction and passes it a String containing the IP address where the pingFunction will perform, believe it or not, a ping test.
The application and it's ANE work great on Flash Builder and even after making it a release, they keep working like a charm on the development PC. The problem is that I've tried on two other computers and the application is throwing the following error:
ArgumentError: Error #3500: The extension context does not have a method with the name pingFunction.
at flash.external::ExtensionContext/_call()
at flash.external::ExtensionContext/call()
at com.mycompanyname.myappname::MyAppName/sendPing()[...
At the beggining I thought I had to do with the fact that I was using a DLL I compiled using the Debug configuration on Visual Studio instead of the Release configuration, because I read that sometimes the a debug-version of a DLL can use external DLLs. So, I changed it and rebuilt the whole library as a release build. Sadly for me, I'm still experiencing the same result.
Also, I tried changing the swf-version of both the AIR app and the ANE to the AIR SDK version I'm using (14.0), and got again the same error.
The development computer is running Windows 8.1 and the others, where the app is not working, Windows 7 and Windows 7 Service Pack 1.
Any ideas about why this is happening? Any questions or comments that might lead me to the right track will be deeply appreciated.
Error#3500 is coming because you don't have the required runtime installed on those machines, which is necessary to execute any c++ code .
On your development machine you have visual studio installed and hence you also have msvcr.
Solution of the problem is:
Install msvcr i.e. Microsoft Visual c++ redistribution - 2012 from here.
you need msvcr anywhere you want to run any VS compiled c++ code.

Windows 8 simulator keeps loading forever

I'm working on Visual Studio 2012 running on Windows 8 (32 bit), developing Windows Store app with C++
The app runs smooth on "local machine". But when I try to run it on the simulator, Build and Deploy succeeds but the simulator keeps loading forever! (dots coming from left and leaving at right)
When I close the simulator from the taskbar, VS gives me the following error: Unable to start the simulator. Cannot process request because the process (####) has exited.
I've been searching everywhere for a solution for a week now. The possible solutions I found were:
1. Changing the fDenyChildConnections registry.
2. Checking the "Automatically use my Windows logon name and password (and domain if any)" checkbox from the security tab of the network.
3. Updating graphics driver.
4. Disconnecting all networks.
5. Restarting VS/making new project.
6. Launching simulator from C:\Program Files\Common Files\microsoft shared\Windows Simulator\11.0\Microsoft.Windows.Simulator.exe
7. Updating VS.
The problem is still there. Does anybody have a solution?
I performed a clean install of Windows 8.1 x64 and the simulator is running smoothly. I guess running 32 bit windows on a 64 bit architecture was the cause of this issue.
Try to see if "Remote Desktop Services" is enabled, if no enable it as manual and start it.
​I had the same issue and the reason was lack of Hyper-V. I installed Hyper-V and the simulator worked.

MFC Ribbon app not displaying ribbon - when .exe is copy pasted to a different machine

Well, I am facing a strange problem. I have developed a sample MFC ribbon application on my machine - Windows 7 , with Visual Studio 2008. When I copy paste the .exe onto my laptop and run the app , I don't see the ribbon menu (in fact the app has not menu now) .
I have tried looking up the .dll that load in each case(on my work machine and laptop) using process monitor but I am unable to locate what I might be missing. Any help will be greatly appreciated.
Edit 1 -
Ok, So thanks for your responses. Some progress has been made with this issue
I changed my IDE to VS 2010. The ribbon was coded manually and I figured out if I could add it as a resource maybe the problem would be solved. VS 2008 did not have the option of adding a ribbon as a resource.
I installed the VS 2010 Service Pack Redistributable X86/X64 depending on whether the machine is 32 or 64 bit.
I built a new "ribbontest.exe" app from VS 2010 and deployed it on other machines on which I would test my actual app. The ribbon for "ribbontest.exe" loads without any problems.
When I deploy my app and run it, first the old menubar loads for a sec or two, then the ribbon flashes and disappears.
A little history of the app I am referring to -
Initially my application had the menubar view. I followed this article http://www.codeguru.com/cpp/cpp/cpp_mfc/tutorials/article.php/c14929/MFC-Feature-Pack-An-Introduction.htm to accommodate a ribbon.
Any suggestions?
Most likely there's a conflict in the settings 'paths'. In your InitInstance() handler, you've got a statement like this:
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need
// Change the registry key under which our settings are stored
SetRegistryKey(_T("yourappname"));
If you haven't changed that name yet, do it. If you did, open regedit.exe on your target machine and remove the whole key under HKCU\Software\yourappname and then try again.
MFC stores user customizations of Ribbons/Menus/... under that key. But if you changed your app those settings don't necessarily match anymore and you can end up with stuff not showing correctly or not at all.
Make sure you download and install the Visual C++ Redistributable Runtime on your destination machine: http://www.microsoft.com/en-us/download/details.aspx?id=29
Or, something like it. Make sure you have architecture (x86/x64) correct and make sure it matches with the service pack version you compile with.
Joe is right: you need redistributable.
Joe is right: you cannot run 64-bit program on 32-bit machine.
All of the above would be indicated by the system (missing DLL, configuration incorrect, or 64/32 bit discrepancy)
Joe is right: your application must be built for specific set of minimum Windows version and service pack.
In addition to Joe’s post you must run release build not debug build.
If all of those requirements are met and you still have this problem, try linking MFC statically and see if problem persists.

Windows CE SDK for Visual Studio 2008

I am new to Windows CE programming.
I have Visual Studio 2008 and Visual Studio 2005. I have found the following SDK for Windows Mobile
http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF-3D48091A390B&displaylang=en
Please help me in deciding if this is the correct one, or please feel free to redirect me the correct one
Thanks in advance
Sujay
If you are targetting a Windows CE device (and not Windows Mobile), then each device has it's own specific SDK. If you are not using a device specific functionality, you create a C# for Windows CE 5.0 application and it will work on every Windows CE device that has the .Net component included in the image.
Don't mix Windows CE and Windows Mobile. Windows Mobile 5-6.5 is based on Windows CE 5.0, but has a standard SDK (different SDK's for different versions of the Windows Mobile at use). Windows CE, as I mentioned, is used in specific solutions and you should get the SDK form the OEM.
If you need a Windows CE Emulator get it here
http://www.microsoft.com/downloads/thankyou.aspx?familyId=a120e012-ca31-4be9-a3bf-b9bf4f64ce72&displayLang=en
and to setup the Emulator look at this guide http://www.hpc.net/chat.asp?ObjectID=97662
Edit: The hpc.net link is now dead so here is what was found on the page using the wayback machine. https://web.archive.org/web/20070428121320/http://www.hpc.net/chat.asp?ObjectID=97662
Connecting the CE 5.0 Emulator to VS2005
This uses the network method and saves the emulator state. It does not use activesync, communications ports or a null modem cable.
Start the emulator using a shortcut command that is something like this:
"C:\Program Files\Windows CE 5.0 Emulator\Emulator_500.exe" nk.cem
/video 640x480x16
/Ethernet virtualswitch
/sharedfolder "C:\CE5SharedFolder"
The shared folder appears on the emulator as \My Device\Storage Card. Using the shared folder, copy the following files to the \My Device\Windows\ folder on the emulator. These files are located on the host at \Program Files\Common Files\Microsoft Shared\CoreCon\1.0\Target\wce400\x86, or similar
Clientshutdown.exe
ConmanClient2.exe
CMaccept.exe
eDbgTL.dll
TcpConnectionA.dll
Select Emulator -> Start Menu -> run -> \Windows\conmanclient2.exe.
Get the IP address of the emulator by double-clicking on the T networking symbol bottom left. If it has no ip address try installing Microsoft Loopback Adapter on the host, check for Virtual Machine Network Services, or other host networking hacks. (This is the difficult bit).
To check that the emulator is responding, on the host type Ping at a DOS prompt.
To get "Save State" working on the emulator, shut down the emulator using the "Save State" option. Then navigate to Host -> My Documents -> My Virtual Machines
The saved state is in the folder that is named with a curly brackets string similar to {06A8A448-EB8B-4E0B-8A88-451412A10C66} say, and known as a GUID. Attempt to rename this folder so that you can highlight and copy the GUID string itself (not the folder).
Then add an option, which is similar to /vmid {06A8A448-EB8B-4E0B-8A88-451412A10C66}, to the emulator shortcut command above.
The shortcut should now start the emulator from its saved state. It is a good idea to back up the saved state folder.
On the host select Visual Studio 2005 -> Tools -> Options -> Device Tools -> Devices
Then select Windows CE 5.0 Device -> Properties -> Configure
In the "Configure TCP/IP Transport" dialog box, select "Use specific IP address", and then type the emulator IP address you found above.
Close the dialog boxes.
Select Emulator -> Start -> run -> \Windows\cMaccept.exe and connect to the emulator from VS2005 within three minutes.
Run your application from Start Debugging in VS2005 and VS2005 should deploy the two cab files nectcfv2.wce5.x86.cab and system_SR_enu.cab first (this may take some time), and then your application.
Close your application in the emulator (I've had trouble using the Stop button on the host).
Shut down the emulator using the "Save State" option.
You may need to re-run cMaccept each time you restart the emulator or VS2005, but the cab files should not need to deploy again, and the emulator ip address should remain the same.
To avoid cMaccept navigate host -> programs -> Microsoft Visual Studio 2005 -> Visual Studio Remote Tools -> Remote Registry Editor
In the "Select a Windows Device" dialog box that appears highlight the "Windows CE 5.0 Device" option
In the emulator run cMaccept and then immediately click OK in the Remote Registry Editor
Highlight Windows CE 5.0 -> HKLM -> System
Right click in the right hand pane and select New DWORD value.
In the name field type (exactly and without the quotes) "CoreConOverrideSecurity" and set its value to 1
Close the editor. Shut down the emulator with Save State.
First off, Sujay, I'll assume you didn't mean Windows CE explicitly. I'll assume you meant programming for handheld devices running a Microsoft operating system. CE hasn't been used for five or six years. The devices are all running Windows Mobile. 6.5 is the most popular now.
You do not need an SDK to program for Windows Mobile in Visual Studio. It is already baked in. If you want to get the latest tools to develop on Windows Mobile 6, then yes, the location you specified is perfect.
Here's another great place to get high-level info: Windows Mobile Development Center
I think you can use C# and create smartdevice project,
and use c# for making apps,use unmanaged code by improting DLL's..
for more sample just see "Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CPP"
here u get some samples.