Click here to Skip to main content
15,887,477 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
I'm making a simple QuickTime extension DLL for GameMaker Studio, which is a game creation software, which only supports calling functions that either have double or char * return values and arguments (HWND arguments as well).

Here's my DLL's code:

#include "stdafx.h"
#include <stdio.h>
#include <comutil.h>
#import "C:\Program Files\QuickTime\QTOLibrary.dll"
#import "C:\Program Files\QuickTime\QTOControl.dll"

using namespace QTOLibrary;
using namespace QTOControlLib;

#define DLL extern "C" _declspec(dllexport)

DLL double qt_initialize()
{
	HRESULT hr = CoInitialize(NULL);
	IQTControl *pQTControl;

	pQTControl->QuickTimeInitialize();

	return(0);
}


DLL double qt_show_movie(char *movie, double keep_aspect_ratio)
{
	IQTControl *pQTControl;

	if (keep_aspect_ratio == (double)true)
	{
		pQTControl->Sizing = qtMovieFitsControlMaintainAspectRatio;
	}
	else
	{
		pQTControl->Sizing = qtMovieFitsControl;
	}

	_bstr_t bstrURL = (_bstr_t)movie;
	pQTControl->BorderStyle = bsNone;
	pQTControl->MovieControllerVisible = FALSE;
	pQTControl->AutoPlay = "True";
	pQTControl->URL = bstrURL;

	return(0);
}

DLL double qt_uninitialize()
{
	IQTControl *pQTControl;

	pQTControl->URL = "";
	pQTControl->QuickTimeTerminate();

	CoUninitialize();

	return(0);
}


Here's the errors Visual Studio 2017 Community's compile form is spitting out:

------ Build started: Project: QuickTime4GM, Configuration: Release Win32 ------
1>QuickTime4GM.cpp
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(161): error C3646: 'Movie': unknown override specifier
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(161): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(163): error C3646: 'QuickTime': unknown override specifier
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(163): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(248): error C3646: 'GetMovie': unknown override specifier
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(248): error C2059: syntax error: '('
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(248): error C2238: unexpected token(s) preceding ';'
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(249): error C3646: 'GetQuickTime': unknown override specifier
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(249): error C2059: syntax error: '('
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(249): error C2238: unexpected token(s) preceding ';'
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(117): error C2039: 'GetMovie': is not a member of 'QTOControlLib::IQTControl'
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(148): note: see declaration of 'QTOControlLib::IQTControl'
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(117): error C2433: 'IQTMoviePtr': 'inline' not permitted on data declarations
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(117): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(117): error C2146: syntax error: missing ';' before identifier 'GetMovie'
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(119): error C3861: 'get_Movie': identifier not found
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(120): error C2355: 'this': can only be referenced inside non-static member functions or non-static data member initializers
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(120): error C2660: '_com_issue_errorex': function does not take 1 arguments
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(121): error C2064: term does not evaluate to a function taking 2 arguments
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(121): warning C4508: 'QTOControlLib::GetMovie': function should return a value; 'void' return type assumed
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(122): error C2617: 'QTOControlLib::GetMovie': inconsistent return statement
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(117): note: see declaration of 'QTOControlLib::GetMovie'
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(124): error C2039: 'GetQuickTime': is not a member of 'QTOControlLib::IQTControl'
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(148): note: see declaration of 'QTOControlLib::IQTControl'
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(124): error C2433: 'IQTQuickTimePtr': 'inline' not permitted on data declarations
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(124): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(124): error C2146: syntax error: missing ';' before identifier 'GetQuickTime'
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(126): error C3861: 'get_QuickTime': identifier not found
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(127): error C2355: 'this': can only be referenced inside non-static member functions or non-static data member initializers
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(127): error C2660: '_com_issue_errorex': function does not take 1 arguments
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(128): error C2064: term does not evaluate to a function taking 2 arguments
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(128): warning C4508: 'QTOControlLib::GetQuickTime': function should return a value; 'void' return type assumed
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(129): error C2617: 'QTOControlLib::GetQuickTime': inconsistent return statement
1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(124): note: see declaration of 'QTOControlLib::GetQuickTime'
1>Done building project "QuickTime4GM.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


I have no idea what any of those errors mean or why.

The errors seem to be all referencing "qtocontrol.tlh", which Visual Studio automatically generates on building, because I imported an ActiveX control, (in this case, "QTOControl.dll").

Here is the file contents of "qtocontrol.tlh":

// Created by Microsoft (R) C/C++ Compiler Version 14.11.25547.0 (603b8d8c).
//
// c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh
//
// C++ source equivalent of Win32 type library C:\Program Files\QuickTime\QTOControl.dll
// compiler-generated file created 01/08/18 at 22:16:41 - DO NOT EDIT!

//
// Cross-referenced type libraries:
//
//  #import "C:\Program Files\QuickTime\QTOLibrary.dll"
//

#pragma once
#pragma pack(push, 8)

#include <comdef.h>

namespace QTOControlLib {

//
// Forward references and typedefs
//

struct __declspec(uuid("7b92f833-027d-402b-bff9-a67697366f4e"))
/* LIBID */ __QTOControlLib;
enum BorderStylesEnum;
enum InitializeQTMLOptionsEnum;
enum QTInitializeQTMLFlagsEnum;
enum QTSizingModeEnum;
enum QTOpenMovieFlagsEnum;
enum QTFullScreenFlagsEnum;
enum QTFullScreenSizingModeEnum;
enum QTStatusCodeTypesEnum;
enum QTStatusCodesEnum;
enum QTErrorEventOriginEnum;
struct __declspec(uuid("89f5e74b-641d-48bd-bf81-dadce7dc83fc"))
/* dual interface */ IQTControl;
struct __declspec(uuid("614e1495-1014-44f8-b350-5344c0770c1e"))
/* dispinterface */ _IQTControlEvents;
struct __declspec(uuid("9b1b71f6-6c61-463e-abdb-88667073d16b"))
/* interface */ IQTControlParams;
struct /* coclass */ QTControl;
struct /* coclass */ QTControlPropPage;

//
// Smart pointer typedef declarations
//

_COM_SMARTPTR_TYPEDEF(IQTControl, __uuidof(IQTControl));
_COM_SMARTPTR_TYPEDEF(_IQTControlEvents, __uuidof(_IQTControlEvents));
_COM_SMARTPTR_TYPEDEF(IQTControlParams, __uuidof(IQTControlParams));

//
// Type library items
//

enum BorderStylesEnum
{
    bsNone = 0,
    bsPlain = 1,
    bs3D = 2
};

enum InitializeQTMLOptionsEnum
{
    qtocInitializeQTMLStandard = 0
};

enum QTInitializeQTMLFlagsEnum
{
    qtInitializeQTMLFlagNoSound = 1,
    qtInitializeQTMLFlagUseGDI = 2,
    qtInitializeQTMLFlagDisableDirectSound = 4,
    qtInitializeQTMLFlagUseExclusiveFullScreenMode = 8
};

enum QTSizingModeEnum
{
    qtControlFitsMovie = 0,
    qtMovieFitsControl = 1,
    qtMovieFitsControlMaintainAspectRatio = 2,
    qtMovieCenteredInControl = 3,
    qtManualSizing = 4
};

enum QTOpenMovieFlagsEnum
{
    qtOpenMovieFlagActive = 1,
    qtOpenMovieFlagDontResolveDataRefs = 2,
    qtOpenMovieFlagDontAskUnresolvedDataRefs = 4,
    qtOpenMovieFlagDontAutoAlternates = 8,
    qtOpenMovieFlagAsyncOK = 256,
    qtOpenMovieFlagIdleImportOK = 1024,
    qtOpenMovieFlagDontInteractWithUser = 2048,
    qtOpenMovieDefaultFlags = 1025
};

enum QTFullScreenFlagsEnum
{
    qtFullScreenFlagHideCursor = 1,
    qtFullScreenFlagAllowEvents = 2,
    qtFullScreenFlagDontChangeMenuBar = 4,
    qtFullScreenDefaultFlags = 6
};

enum QTFullScreenSizingModeEnum
{
    qtFullScreenMovieFitsMonitor = 1,
    qtFullScreenMovieFitsMonitorMaintainAspectRatio = 2,
    qtFullScreenMovieCenteredInMonitor = 3,
    qtFullScreenManualSizing = 4
};

enum QTStatusCodeTypesEnum
{
    qtStatusCodeTypeControl = 0,
    qtStatusCodeTypeMovieLoadState = 2
};

enum QTStatusCodesEnum
{
    qtStatusNone = 0,
    qtStatusConnecting = 2,
    qtStatusNegotiating = 5,
    qtStatusRequestedData = 11,
    qtStatusBuffering = 12,
    qtStatusURLChanged = 4096,
    qtStatusFullScreenBegin = 4097,
    qtStatusFullScreenEnd = 4098,
    qtStatusMovieLoadFinalize = 4099,
    qtMovieLoadStateError = -1,
    qtMovieLoadStateLoading = 1000,
    qtMovieLoadStateLoaded = 2000,
    qtMovieLoadStatePlayable = 10000,
    qtMovieLoadStatePlaythroughOK = 20000,
    qtMovieLoadStateComplete = 100000
};

enum QTErrorEventOriginEnum
{
    qtErrorEventOriginControl = 0,
    qtErrorEventOriginMovie = 1,
    qtErrorEventOriginQuickTime = 2
};

struct __declspec(uuid("89f5e74b-641d-48bd-bf81-dadce7dc83fc"))
IQTControl : IDispatch
{
    //
    // Property data
    //

    __declspec(property(get=GetBorderStyle,put=PutBorderStyle))
    enum BorderStylesEnum BorderStyle;
    __declspec(property(get=GetBorderColor,put=PutBorderColor))
    OLE_COLOR BorderColor;
    __declspec(property(get=GetURL,put=PutURL))
    _bstr_t URL;
    __declspec(property(get=GetMovie))
    IQTMoviePtr Movie;
    __declspec(property(get=GetQuickTime))
    IQTQuickTimePtr QuickTime;
    __declspec(property(get=GetErrorCode))
    long ErrorCode;
    __declspec(property(get=GetBackColor,put=PutBackColor))
    OLE_COLOR BackColor;
    __declspec(property(get=GetIsQuickTimeAvailable))
    VARIANT_BOOL IsQuickTimeAvailable[];
    __declspec(property(get=GetQuickTimeVersion))
    long QuickTimeVersion;
    __declspec(property(get=Get_MovieHandle,put=Put_MovieHandle))
    long _MovieHandle;
    __declspec(property(get=Get_MovieControllerHandle))
    long _MovieControllerHandle;
    __declspec(property(get=GetMovieControllerVisible,put=PutMovieControllerVisible))
    VARIANT_BOOL MovieControllerVisible;
    __declspec(property(get=GetScaleX,put=PutScaleX))
    float ScaleX;
    __declspec(property(get=GetScaleY,put=PutScaleY))
    float ScaleY;
    __declspec(property(get=GetFullScreenMonitorNumber,put=PutFullScreenMonitorNumber))
    long FullScreenMonitorNumber;
    __declspec(property(get=GetFileName,put=PutFileName))
    _bstr_t FileName;
    __declspec(property(get=GetFullScreenSizing,put=PutFullScreenSizing))
    enum QTFullScreenSizingModeEnum FullScreenSizing;
    __declspec(property(get=GetFullScreen,put=PutFullScreen))
    VARIANT_BOOL FullScreen;
    __declspec(property(get=GetErrorHandling,put=PutErrorHandling))
    long ErrorHandling;
    __declspec(property(get=GetNewMovieFlags,put=PutNewMovieFlags))
    long NewMovieFlags;
    __declspec(property(get=GetSizing,put=PutSizing))
    enum QTSizingModeEnum Sizing;
    __declspec(property(get=GetVersion))
    _bstr_t Version;
    __declspec(property(get=GetFullScreenFlags,put=PutFullScreenFlags))
    long FullScreenFlags;
    __declspec(property(get=GetFullScreenEndKeyCode,put=PutFullScreenEndKeyCode))
    long FullScreenEndKeyCode;
    __declspec(property(get=GetFullScreenHWND))
    long FullScreenHWND;
    __declspec(property(get=GetAutoPlay,put=PutAutoPlay))
    _bstr_t AutoPlay;
    __declspec(property(get=GethWnd))
    long hWnd;
    __declspec(property(get=GetBaseURL,put=PutBaseURL))
    _bstr_t BaseURL;

    //
    // Wrapper methods for error-handling
    //

    HRESULT ShowAboutBox ( );
    void PutBackColor (
        OLE_COLOR pclr );
    OLE_COLOR GetBackColor ( );
    void PutBorderColor (
        OLE_COLOR pclr );
    OLE_COLOR GetBorderColor ( );
    void PutBorderStyle (
        enum BorderStylesEnum pstyle );
    enum BorderStylesEnum GetBorderStyle ( );
    long QuickTimeInitialize (
        const _variant_t & InitOptions = vtMissing,
        const _variant_t & InitFlags = vtMissing );
    HRESULT QuickTimeTerminate ( );
    _bstr_t GetURL ( );
    void PutURL (
        _bstr_t pVal );
    _bstr_t GetFileName ( );
    void PutFileName (
        _bstr_t pVal );
    HRESULT _get_DataRef (
        long * pDataRef,
        long * pDataRefType );
    HRESULT _put_DataRef (
        long inDataRef,
        long inDataRefType,
        const _variant_t & inNewMovieFlags = vtMissing );
    HRESULT CreateNewMovie (
        const _variant_t & movieIsActive = vtMissing );
    HRESULT CreateNewMovieFromImages (
        _bstr_t bstrFirstFilePath,
        float rate,
        VARIANT_BOOL rateIsFramesPerSecond );
    IQTMoviePtr GetMovie ( );
    IQTQuickTimePtr GetQuickTime ( );
    long GetErrorCode ( );
    _variant_t Get_Property (
        long propertyClass,
        long propertyID );
    void Put_Property (
        long propertyClass,
        long propertyID,
        const _variant_t & pVal );
    VARIANT_BOOL GetIsQuickTimeAvailable (
        long howToCheck );
    long GetQuickTimeVersion ( );
    long Get_MovieHandle ( );
    void Put_MovieHandle (
        long pVal );
    long Get_MovieControllerHandle ( );
    long GethWnd ( );
    VARIANT_BOOL GetMovieControllerVisible ( );
    void PutMovieControllerVisible (
        VARIANT_BOOL pVal );
    float GetScaleX ( );
    void PutScaleX (
        float pVal );
    float GetScaleY ( );
    void PutScaleY (
        float pVal );
    HRESULT SetScale (
        float x,
        const _variant_t & y = vtMissing );
    void PutFullScreen (
        VARIANT_BOOL pVal );
    VARIANT_BOOL GetFullScreen ( );
    void PutFullScreenFlags (
        long pVal );
    long GetFullScreenFlags ( );
    void PutFullScreenMonitorNumber (
        long pVal );
    long GetFullScreenMonitorNumber ( );
    void PutFullScreenEndKeyCode (
        long pVal );
    long GetFullScreenEndKeyCode ( );
    long GetFullScreenHWND ( );
    void PutFullScreenSizing (
        enum QTFullScreenSizingModeEnum psizingOption );
    enum QTFullScreenSizingModeEnum GetFullScreenSizing ( );
    void PutErrorHandling (
        long pVal );
    long GetErrorHandling ( );
    void PutSizing (
        enum QTSizingModeEnum psizingOption );
    enum QTSizingModeEnum GetSizing ( );
    _bstr_t GetVersion ( );
    void PutNewMovieFlags (
        long pVal );
    long GetNewMovieFlags ( );
    _bstr_t GetAutoPlay ( );
    void PutAutoPlay (
        _bstr_t pVal );
    _bstr_t GetBaseURL ( );
    void PutBaseURL (
        _bstr_t pVal );
    HRESULT MovieResizingLock ( );
    HRESULT MovieResizingUnlock ( );
    HRESULT SetSizing (
        enum QTSizingModeEnum sizingOption,
        VARIANT_BOOL forceSizeUpdate );

    //
    // Raw methods provided by interface
    //

      virtual HRESULT __stdcall raw_ShowAboutBox ( ) = 0;
      virtual HRESULT __stdcall put_BackColor (
        /*[in]*/ OLE_COLOR pclr ) = 0;
      virtual HRESULT __stdcall get_BackColor (
        /*[out,retval]*/ OLE_COLOR * pclr ) = 0;
      virtual HRESULT __stdcall put_BorderColor (
        /*[in]*/ OLE_COLOR pclr ) = 0;
      virtual HRESULT __stdcall get_BorderColor (
        /*[out,retval]*/ OLE_COLOR * pclr ) = 0;
      virtual HRESULT __stdcall put_BorderStyle (
        /*[in]*/ enum BorderStylesEnum pstyle ) = 0;
      virtual HRESULT __stdcall get_BorderStyle (
        /*[out,retval]*/ enum BorderStylesEnum * pstyle ) = 0;
      virtual HRESULT __stdcall raw_QuickTimeInitialize (
        /*[in]*/ VARIANT InitOptions,
        /*[in]*/ VARIANT InitFlags,
        /*[out,retval]*/ long * pVal ) = 0;
      virtual HRESULT __stdcall raw_QuickTimeTerminate ( ) = 0;
      virtual HRESULT __stdcall get_URL (
        /*[out,retval]*/ BSTR * pVal ) = 0;
      virtual HRESULT __stdcall put_URL (
        /*[in]*/ BSTR pVal ) = 0;
      virtual HRESULT __stdcall get_FileName (
        /*[out,retval]*/ BSTR * pVal ) = 0;
      virtual HRESULT __stdcall put_FileName (
        /*[in]*/ BSTR pVal ) = 0;
      virtual HRESULT __stdcall raw__get_DataRef (
        /*[out]*/ long * pDataRef,
        /*[out]*/ long * pDataRefType ) = 0;
      virtual HRESULT __stdcall raw__put_DataRef (
        /*[in]*/ long inDataRef,
        /*[in]*/ long inDataRefType,
        /*[in]*/ VARIANT inNewMovieFlags = vtMissing ) = 0;
      virtual HRESULT __stdcall raw_CreateNewMovie (
        /*[in]*/ VARIANT movieIsActive = vtMissing ) = 0;
      virtual HRESULT __stdcall raw_CreateNewMovieFromImages (
        /*[in]*/ BSTR bstrFirstFilePath,
        /*[in]*/ float rate,
        /*[in]*/ VARIANT_BOOL rateIsFramesPerSecond ) = 0;
      virtual HRESULT __stdcall get_Movie (
        /*[out,retval]*/ struct IQTMovie * * pVal ) = 0;
      virtual HRESULT __stdcall get_QuickTime (
        /*[out,retval]*/ struct IQTQuickTime * * pVal ) = 0;
      virtual HRESULT __stdcall get_ErrorCode (
        /*[out,retval]*/ long * pVal ) = 0;
      virtual HRESULT __stdcall get__Property (
        /*[in]*/ long propertyClass,
        /*[in]*/ long propertyID,
        /*[out,retval]*/ VARIANT * pVal ) = 0;
      virtual HRESULT __stdcall put__Property (
        /*[in]*/ long propertyClass,
        /*[in]*/ long propertyID,
        VARIANT pVal ) = 0;
      virtual HRESULT __stdcall get_IsQuickTimeAvailable (
        /*[in]*/ long howToCheck,
        /*[out,retval]*/ VARIANT_BOOL * pVal ) = 0;
      virtual HRESULT __stdcall get_QuickTimeVersion (
        /*[out,retval]*/ long * pVal ) = 0;
      virtual HRESULT __stdcall get__MovieHandle (
        /*[out,retval]*/ long * pVal ) = 0;
      virtual HRESULT __stdcall put__MovieHandle (
        /*[in]*/ long pVal ) = 0;
      virtual HRESULT __stdcall get__MovieControllerHandle (
        /*[out,retval]*/ long * pVal ) = 0;
      virtual HRESULT __stdcall get_hWnd (
        /*[out,retval]*/ long * pVal ) = 0;
      virtual HRESULT __stdcall get_MovieControllerVisible (
        /*[out,retval]*/ VARIANT_BOOL * pVal ) = 0;
      virtual HRESULT __stdcall put_MovieControllerVisible (
        /*[in]*/ VARIANT_BOOL pVal ) = 0;
      virtual HRESULT __stdcall get_ScaleX (
        /*[out,retval]*/ float * pVal ) = 0;
      virtual HRESULT __stdcall put_ScaleX (
        /*[in]*/ float pVal ) = 0;
      virtual HRESULT __stdcall get_ScaleY (
        /*[out,retval]*/ float * pVal ) = 0;
      virtual HRESULT __stdcall put_ScaleY (
        /*[in]*/ float pVal ) = 0;
      virtual HRESULT __stdcall raw_SetScale (
        /*[in]*/ float x,
        /*[in]*/ VARIANT y = vtMissing ) = 0;
      virtual HRESULT __stdcall put_FullScreen (
        /*[in]*/ VARIANT_BOOL pVal ) = 0;
      virtual HRESULT __stdcall get_FullScreen (
        /*[out,retval]*/ VARIANT_BOOL * pVal ) = 0;
      virtual HRESULT __stdcall put_FullScreenFlags (
        /*[in]*/ long pVal ) = 0;
      virtual HRESULT __stdcall get_FullScreenFlags (
        /*[out,retval]*/ long * pVal ) = 0;
      virtual HRESULT __stdcall put_FullScreenMonitorNumber (
        /*[in]*/ long pVal ) = 0;
      virtual HRESULT __stdcall get_FullScreenMonitorNumber (
        /*[out,retval]*/ long * pVal ) = 0;
      virtual HRESULT __stdcall put_FullScreenEndKeyCode (
        /*[in]*/ long pVal ) = 0;
      virtual HRESULT __stdcall get_FullScreenEndKeyCode (
        /*[out,retval]*/ long * pVal ) = 0;
      virtual HRESULT __stdcall get_FullScreenHWND (
        /*[out,retval]*/ long * pVal ) = 0;
      virtual HRESULT __stdcall put_FullScreenSizing (
        /*[in]*/ enum QTFullScreenSizingModeEnum psizingOption ) = 0;
      virtual HRESULT __stdcall get_FullScreenSizing (
        /*[out,retval]*/ enum QTFullScreenSizingModeEnum * psizingOption ) = 0;
      virtual HRESULT __stdcall put_ErrorHandling (
        /*[in]*/ long pVal ) = 0;
      virtual HRESULT __stdcall get_ErrorHandling (
        /*[out,retval]*/ long * pVal ) = 0;
      virtual HRESULT __stdcall put_Sizing (
        /*[in]*/ enum QTSizingModeEnum psizingOption ) = 0;
      virtual HRESULT __stdcall get_Sizing (
        /*[out,retval]*/ enum QTSizingModeEnum * psizingOption ) = 0;
      virtual HRESULT __stdcall get_Version (
        /*[out,retval]*/ BSTR * pVal ) = 0;
      virtual HRESULT __stdcall put_NewMovieFlags (
        /*[in]*/ long pVal ) = 0;
      virtual HRESULT __stdcall get_NewMovieFlags (
        /*[out,retval]*/ long * pVal ) = 0;
      virtual HRESULT __stdcall get_AutoPlay (
        /*[out,retval]*/ BSTR * pVal ) = 0;
      virtual HRESULT __stdcall put_AutoPlay (
        /*[in]*/ BSTR pVal ) = 0;
      virtual HRESULT __stdcall get_BaseURL (
        /*[out,retval]*/ BSTR * pVal ) = 0;
      virtual HRESULT __stdcall put_BaseURL (
        /*[in]*/ BSTR pVal ) = 0;
      virtual HRESULT __stdcall raw_MovieResizingLock ( ) = 0;
      virtual HRESULT __stdcall raw_MovieResizingUnlock ( ) = 0;
      virtual HRESULT __stdcall raw_SetSizing (
        /*[in]*/ enum QTSizingModeEnum sizingOption,
        /*[in]*/ VARIANT_BOOL forceSizeUpdate ) = 0;
};

struct __declspec(uuid("614e1495-1014-44f8-b350-5344c0770c1e"))
_IQTControlEvents : IDispatch
{
    //
    // Wrapper methods for error-handling
    //

    // Methods:
    HRESULT QTEvent (
        long EventClass,
        long EventID,
        long Phase,
        struct IQTEventObject * EventObject,
        VARIANT_BOOL * Cancel );
    HRESULT SizeChanged (
        long Width,
        long Height );
    HRESULT Error (
        long ErrorCode,
        long Origin );
    HRESULT StatusUpdate (
        long StatusCodeType,
        long StatusCode,
        _bstr_t StatusMessage );
    HRESULT MouseDown (
        short Button,
        short Shift,
        short x,
        short y );
    HRESULT MouseUp (
        short Button,
        short Shift,
        short x,
        short y );
    HRESULT MouseMove (
        short Button,
        short Shift,
        short x,
        short y );
};

struct __declspec(uuid("9b1b71f6-6c61-463e-abdb-88667073d16b"))
IQTControlParams : IUnknown
{};

struct __declspec(uuid("24ba3caf-4be8-4aec-a7c8-6f47d5684602"))
QTControl;
    // [ default ] interface IQTControl
    // [ default, source ] dispinterface _IQTControlEvents
    // interface _IQTControlFireEvent

struct __declspec(uuid("a6c538c6-4a26-4839-b0d2-bf0406a4b299"))
QTControlPropPage;
    // [ default ] interface IUnknown

//
// Wrapper method implementations
//

#include "c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli"

} // namespace QTOControlLib

#pragma pack(pop)


What I have tried:

I'm not able to try anything to fix this because I don't know what the problem is. I've googled everywhere, which is about all I can do, and with no success.
Posted
Updated 11-Jan-18 11:16am
v3
Comments
Richard MacCutchan 6-Jan-18 4:50am    
Those sort of errors usually indicate that some essential information is missing from the sources. Most likely some #define or #include that is required by the QT header. The documentation should help to find out what it is.
time-killer-games 14-Jan-18 11:01am    
where is the documentation located? I've been looking all around for that for literally a month.
Richard MacCutchan 14-Jan-18 11:05am    
Since you have the QuickTime headers on your system I assume you got them from the QuickTime website. That would seem the logical place to find documentation, or even help forums.
time-killer-games 14-Jan-18 21:15pm    
I don't have any quicktime headers. I downloaded quicktime and the activex control DLL's that came with it are all I have. I would really appreciate it if you aren't willing to help to at least not act sarcastic like I'm stupid or something.
time-killer-games 15-Jan-18 14:52pm    
Whoever rated this question 1 star doesn't seem to understand I explained my situation the best I could.

1 solution

It is typical for some headers which arent correctly included. Use relative pathes because full pathes are dangerous.

I your case the first error is that the IQTMoviePtr isnt declared and so is start of the all other problems. (That should you had found by yourself). Maybe that codeline fixes all:
C++
using namespace QTOLibrary;
Delete the tlh file and retry after fixing. Take a look at that Github project for some code examples.
 
Share this answer
 
Comments
time-killer-games 11-Jan-18 17:19pm    
Hi! I tried adding:

using namespace QTOLibrary;

As you suggested, and still have most of the same errors. See my updated question for more details. Thanks for the help! :) (I also deleted the original *.tlh file). I'm not sure how to specify a relative path in this case, because the path to the ActiveX DLL's are not in the root or a subfolder of the import directory.

Am I missing some sort of QuickTime SDK or necessary headers I should get from Apple?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900