locked
[UWP] [Desktop Bridge] - Apple QuickTime RRS feed

  • Question

  • I have a win32 audio/MIDI app converted and available in the store, works great.

    For certain features, the app relies on QuickTime from Apple. this is done by linking to a libray file called "qtmlClient.lib".

    All this works great when it's run as an ordinary win32 app, but accessing QuickTime when the app is a UWP app fails.

    I assume the AppxManifest.xml file needs some additional dependency?

      <Dependencies>
        <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14393.0" MaxVersionTested="10.0.14393.0" />
        <PackageDependency Name = "??????????" />
      </Dependencies>

    Any help appreciated.

    Thursday, November 24, 2016 1:11 PM

All replies

  • Hi audiomidideveloper,

    Could you please tell us the error message you get in UWP app when accessing QuickTime?

    Best Regards,
    David

    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Friday, November 25, 2016 12:05 PM
  • Hello,

    Thanks for responding!

    The first step in initializing QuickTime is this call:

    OSErr err = InitializeQTML(0);

    This call returns an error -2093 which according to the MacError.h file means:

    qtmlDllLoadErr = -2093, /* Windows specific errors (when qtml is loading) */

    The default QuickTime installation path is

    C:\Program Files (x86)\QuickTime

    and this folder contains a couple of dll files such as

    "QucikTimePlayer.dll", QTOControl.dll, QTOLibray.dll etc.

    I would assume my app needs permission to load DLL files residing outside of my program folder path?

    Any idea how to solve this problem?

    Thanks

    Saturday, November 26, 2016 1:30 PM
  • Hi audiomidideveloper,

    As you assumed, you need to include the dll files into your package. Maybe you could try to add the dll files by right-click project -> Add -> Existing Item, then right-click on the dll files -> Properties and set Content to Yes. 

    Best Regards,
    David

    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Monday, November 28, 2016 9:41 AM
  • Hello,

    That will not work or is not even possible.

    The dll files are installed by the Apple QuickTime installer and might not be installed on the system.

    My app links to a special Apple file, "qtmlClient.lib". This checkes if QuickTime is installed on the system, if it is, then it loads the required dll files and my app can start using QuickTime.

    If QuickTime is NOT installed, the "qtmlClient.lib" doesn't try to load the dll files and returns "QuickTimeNotAvailable". My app then continues to work but without the extra features that QuickTime offers.

    This is how it works when my app is run as a regular win32 app.

    So the UWP version of my win32 app needs some kind of permission to load dll files outside of the app directory.

    Since QuickTime is always installed into

    C:\Program Files (x86)\QuickTime

    permissions to that specific directory would be enough.

    Monday, November 28, 2016 10:13 AM
  • Hi audiomidideveloper,

    If you are using SetDllDirectory or AddDllDirectory to locate dlls in Desktop Bridge, it is not supported at this time but will be supported in a future release. As a workaround, you could add the dlls to the package. Please see here.
    https://msdn.microsoft.com/windows/uwp/porting/desktop-to-uwp-prepare 

    Best Regards,
    David

    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    • Edited by David_FF Wednesday, November 30, 2016 10:28 AM
    Wednesday, November 30, 2016 8:19 AM
  • Hello,

    I don't use either SetDllDirectory or AddDllDirectory, I just link to a library file that Apple/QuickTime provides and it "magically" finds out and loads the needed dll files. I assume it looks in the registry to find out where QuickTime is installed or maybe it's always installed into "C:\Program Files (x86)\QuickTime"?

    I can't add any of the QuickTime dll files into my app, it simply doesn't work that way.

    I assume my app needs permission to load a dll outside of its install path, if that's not possible then, well...?

    audiomidideveloper

    Wednesday, November 30, 2016 3:23 PM
  • Hi audiomidideveloper,

    I thought that qtmlCient.lib was using SetDllDirectory or AddDllDirectory function by directory path in PATH environment variable. For more information, please refer to the following link.
    https://msdn.microsoft.com/library/windows/desktop/ms686203 

    Best Regards,
    David

    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Thursday, December 1, 2016 10:11 AM