View Full Version : IPC_GET_BASIC_FILE_INFO
Slowmo
03-08-2007, 05:52 AM
I get an "Access violation error at 0040C65B. Read of address 00000000." every time IPC_GET_BASIC_FILE_INFO (from Winamp SDK) is sent to KMPlayer.
I checked that a memory location pointed by wParam is a valid basicFileInfoStruct structure. Winamp itself accepts the mentioned message with no problems so I guess there's something wrong with KMPlayer...
kyh96403
03-08-2007, 07:55 AM
Please show sample code for send IPC_GET_BASIC_FILE_INFO.
Slowmo
03-09-2007, 04:20 AM
Well, actually I am sending IPC_GET_BASIC_FILE_INFO from external application written in VB.NET
I can prepare a sample application which only sends IPC_GET_BASIC_FILE_INFO if you need it... Shall I do that?
kyh96403
03-09-2007, 08:20 AM
Are you call from out of process(EXE)?
IPC's function only support in process(DLL).
Anyway please show simple sample code~~
Slowmo
03-10-2007, 02:34 AM
No, you are wrong. IPC can be called from external process as long as I pass a pointer to a valid memory location of a basicFileInfoStruct structure in KMPlayer's memory space. This memory space is allocated using VirtualAllocEx Windows API and written using WriteProcessMemory API.
Anyway, I am supplying a demo project (compiled binary also included) that will try to get a file length of a first playlist item (item with index 0).
To test, KMPlayer must be running. On launch of an application, demo application will try to bind to KMPlayer, so make sure no other instances of KMPlayer/Winamp are running. After that, you must press the button to see the Access Violation message appear. You can then make the same test using Winamp to see that this actually works with it.
Do not forget KMP is not winamp. So the function can be different as KMP just simulates some apis of winamp. It might be a compatibility issue of the function.
Why is it possible to use some plugins of winamp?; The player simulates some APIs of the older version of winamp for making it possible to use the plugin of winamp. It is not 100% compatible. (Mainly focused on enabling input plugins) Personally, I don't use almost all winamp things about the plugin. (There are better ways.) The plugin structure of winamp is not so efficient as it must be loaded when launching the player even if it is not used. Recently, winamp changed many parts of the plugin structure resulting in the compatibility issues with KMP (It became hard to support due to the hidden parts).
Slowmo
03-10-2007, 09:34 PM
Yes, I understand that KMPlayer may not support all APIs, but still, there is an Access Violation when sending IPC_GET_BASIC_FILE_INFO, meaning that this message is handled but with some problem.
vBulletin® v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.