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":
#pragma once
#pragma pack(push, 8)
#include <comdef.h>
namespace QTOControlLib {
struct __declspec(uuid("7b92f833-027d-402b-bff9-a67697366f4e"))
__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"))
IQTControl;
struct __declspec(uuid("614e1495-1014-44f8-b350-5344c0770c1e"))
_IQTControlEvents;
struct __declspec(uuid("9b1b71f6-6c61-463e-abdb-88667073d16b"))
IQTControlParams;
struct QTControl;
struct QTControlPropPage;
_COM_SMARTPTR_TYPEDEF(IQTControl, __uuidof(IQTControl));
_COM_SMARTPTR_TYPEDEF(_IQTControlEvents, __uuidof(_IQTControlEvents));
_COM_SMARTPTR_TYPEDEF(IQTControlParams, __uuidof(IQTControlParams));
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
{
__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;
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 );
virtual HRESULT __stdcall raw_ShowAboutBox ( ) = 0;
virtual HRESULT __stdcall put_BackColor (
OLE_COLOR pclr ) = 0;
virtual HRESULT __stdcall get_BackColor (
OLE_COLOR * pclr ) = 0;
virtual HRESULT __stdcall put_BorderColor (
OLE_COLOR pclr ) = 0;
virtual HRESULT __stdcall get_BorderColor (
OLE_COLOR * pclr ) = 0;
virtual HRESULT __stdcall put_BorderStyle (
enum BorderStylesEnum pstyle ) = 0;
virtual HRESULT __stdcall get_BorderStyle (
enum BorderStylesEnum * pstyle ) = 0;
virtual HRESULT __stdcall raw_QuickTimeInitialize (
VARIANT InitOptions,
VARIANT InitFlags,
long * pVal ) = 0;
virtual HRESULT __stdcall raw_QuickTimeTerminate ( ) = 0;
virtual HRESULT __stdcall get_URL (
BSTR * pVal ) = 0;
virtual HRESULT __stdcall put_URL (
BSTR pVal ) = 0;
virtual HRESULT __stdcall get_FileName (
BSTR * pVal ) = 0;
virtual HRESULT __stdcall put_FileName (
BSTR pVal ) = 0;
virtual HRESULT __stdcall raw__get_DataRef (
long * pDataRef,
long * pDataRefType ) = 0;
virtual HRESULT __stdcall raw__put_DataRef (
long inDataRef,
long inDataRefType,
VARIANT inNewMovieFlags = vtMissing ) = 0;
virtual HRESULT __stdcall raw_CreateNewMovie (
VARIANT movieIsActive = vtMissing ) = 0;
virtual HRESULT __stdcall raw_CreateNewMovieFromImages (
BSTR bstrFirstFilePath,
float rate,
VARIANT_BOOL rateIsFramesPerSecond ) = 0;
virtual HRESULT __stdcall get_Movie (
struct IQTMovie * * pVal ) = 0;
virtual HRESULT __stdcall get_QuickTime (
struct IQTQuickTime * * pVal ) = 0;
virtual HRESULT __stdcall get_ErrorCode (
long * pVal ) = 0;
virtual HRESULT __stdcall get__Property (
long propertyClass,
long propertyID,
VARIANT * pVal ) = 0;
virtual HRESULT __stdcall put__Property (
long propertyClass,
long propertyID,
VARIANT pVal ) = 0;
virtual HRESULT __stdcall get_IsQuickTimeAvailable (
long howToCheck,
VARIANT_BOOL * pVal ) = 0;
virtual HRESULT __stdcall get_QuickTimeVersion (
long * pVal ) = 0;
virtual HRESULT __stdcall get__MovieHandle (
long * pVal ) = 0;
virtual HRESULT __stdcall put__MovieHandle (
long pVal ) = 0;
virtual HRESULT __stdcall get__MovieControllerHandle (
long * pVal ) = 0;
virtual HRESULT __stdcall get_hWnd (
long * pVal ) = 0;
virtual HRESULT __stdcall get_MovieControllerVisible (
VARIANT_BOOL * pVal ) = 0;
virtual HRESULT __stdcall put_MovieControllerVisible (
VARIANT_BOOL pVal ) = 0;
virtual HRESULT __stdcall get_ScaleX (
float * pVal ) = 0;
virtual HRESULT __stdcall put_ScaleX (
float pVal ) = 0;
virtual HRESULT __stdcall get_ScaleY (
float * pVal ) = 0;
virtual HRESULT __stdcall put_ScaleY (
float pVal ) = 0;
virtual HRESULT __stdcall raw_SetScale (
float x,
VARIANT y = vtMissing ) = 0;
virtual HRESULT __stdcall put_FullScreen (
VARIANT_BOOL pVal ) = 0;
virtual HRESULT __stdcall get_FullScreen (
VARIANT_BOOL * pVal ) = 0;
virtual HRESULT __stdcall put_FullScreenFlags (
long pVal ) = 0;
virtual HRESULT __stdcall get_FullScreenFlags (
long * pVal ) = 0;
virtual HRESULT __stdcall put_FullScreenMonitorNumber (
long pVal ) = 0;
virtual HRESULT __stdcall get_FullScreenMonitorNumber (
long * pVal ) = 0;
virtual HRESULT __stdcall put_FullScreenEndKeyCode (
long pVal ) = 0;
virtual HRESULT __stdcall get_FullScreenEndKeyCode (
long * pVal ) = 0;
virtual HRESULT __stdcall get_FullScreenHWND (
long * pVal ) = 0;
virtual HRESULT __stdcall put_FullScreenSizing (
enum QTFullScreenSizingModeEnum psizingOption ) = 0;
virtual HRESULT __stdcall get_FullScreenSizing (
enum QTFullScreenSizingModeEnum * psizingOption ) = 0;
virtual HRESULT __stdcall put_ErrorHandling (
long pVal ) = 0;
virtual HRESULT __stdcall get_ErrorHandling (
long * pVal ) = 0;
virtual HRESULT __stdcall put_Sizing (
enum QTSizingModeEnum psizingOption ) = 0;
virtual HRESULT __stdcall get_Sizing (
enum QTSizingModeEnum * psizingOption ) = 0;
virtual HRESULT __stdcall get_Version (
BSTR * pVal ) = 0;
virtual HRESULT __stdcall put_NewMovieFlags (
long pVal ) = 0;
virtual HRESULT __stdcall get_NewMovieFlags (
long * pVal ) = 0;
virtual HRESULT __stdcall get_AutoPlay (
BSTR * pVal ) = 0;
virtual HRESULT __stdcall put_AutoPlay (
BSTR pVal ) = 0;
virtual HRESULT __stdcall get_BaseURL (
BSTR * pVal ) = 0;
virtual HRESULT __stdcall put_BaseURL (
BSTR pVal ) = 0;
virtual HRESULT __stdcall raw_MovieResizingLock ( ) = 0;
virtual HRESULT __stdcall raw_MovieResizingUnlock ( ) = 0;
virtual HRESULT __stdcall raw_SetSizing (
enum QTSizingModeEnum sizingOption,
VARIANT_BOOL forceSizeUpdate ) = 0;
};
struct __declspec(uuid("614e1495-1014-44f8-b350-5344c0770c1e"))
_IQTControlEvents : IDispatch
{
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;
struct __declspec(uuid("a6c538c6-4a26-4839-b0d2-bf0406a4b299"))
QTControlPropPage;
#include "c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli"
}
#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.