Software Development Kit, Read this first

Supported languages

Static library (.lib)

MediaInfo is written in standart C++.
Some binaries are released (take a look to the download page):
  • MSVC : Microsoft Visual C++ (static Multitreaded linked to C library)
  • BCB : Borland C++ Builder
For others compilers, you must build from sources.

Dynamic library (.Dll)

DLL is available as a dynamic link from other languages (or C++ compilers users who wants to use a DLL).
Any language compatible with standart DLLs are compatible with MediaInfo DLL.
Some examples are included in the DLL release (take a look to the download page):
  • MSVC : Microsoft Visual C++ 9 (aka 2005)
  • MSCS : Microsoft C# 9 (aka 2005)
  • MSJS : Microsoft J# 9 (aka 2005)
  • MSVB : Microsoft Visual Basic 9 (aka 2005)
  • BCB : Borland C++ Builder 6
  • Delphi : Borland Delphi 7
Note: for Visual Studio 7 (aka 2002) or 8 (aka 2003), you can edit .sln and .xxproj to be compatible.
- .sln : "...Format Version 9.00" to 7.00
- .xxproj : "Version="8.00" or "Version="7.10" to 7.00
This is not always tested, but you should easily adapt them to your compiler)

There are contributions (in the "Contrib" directory), with no support:
  • MSVB5 : Microsoft Visual Basic 5 and 6 example, from Ingo Brueckl
  • ActiveX : ActiveX wrapper for MediaInfoDLL, with Internet Explorer and VB Script examples, from Ingo Brueckl

Don't forget to put MediaInfo.dll and Example.ogg in your executable folder.

Versioning method

  • if one of 2 first numbers change, there is no guaranties that the DLL is compatible with old one. You should verify with MediaInfo_Option("Version") if you are compatible
  • if one of 2 last numbers change, there is a guaranty that the DLL is compatible with old one.
So you should test the version of MediaInfo, and if one of the 2 first numbers change, disable it.

Conventions

Code is shown with C++ view:
ClassName::MethodName (Variables)

If you use the "C" interface (for example, if you use the DLL), you should map with:
ClassName_MethodName (Handle, Variables)
"Handle" is a unique identifier of the object you use (created by Handle=ClassName_New())
Because of the lack of namespaces in C language, you must change constants too:
XXX --> MediaInfo_XXX

If you use the "C++" interface, don't forget that all classes and typedefs are in the MediaInfoLib namespace:
use namespace MediaInfoLib;

Note : language specific formating (";" at the end of line, "L" for Unicode strings...) are not in this explaination.
Note : some languages permit more cutomization of constants, take a look in the header file to know exact names.