summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/URLAccess.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime_win32/URLAccess.h')
-rw-r--r--common/quicktime_win32/URLAccess.h623
1 files changed, 623 insertions, 0 deletions
diff --git a/common/quicktime_win32/URLAccess.h b/common/quicktime_win32/URLAccess.h
new file mode 100644
index 0000000..2dca3fa
--- /dev/null
+++ b/common/quicktime_win32/URLAccess.h
@@ -0,0 +1,623 @@
+/*
+ File: URLAccess.h
+
+ Contains: URL Access Interfaces.
+
+ Version: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 1994-2000 by Apple Computer, Inc., all rights reserved
+
+ Bugs?: For bug reports, consult the following page on
+ the World Wide Web:
+
+ http://developer.apple.com/bugreporter/
+
+*/
+#ifndef __URLACCESS__
+#define __URLACCESS__
+
+#ifndef __MACTYPES__
+#include <MacTypes.h>
+#endif
+
+#ifndef __FILES__
+#include <Files.h>
+#endif
+
+#ifndef __CODEFRAGMENTS__
+#include <CodeFragments.h>
+#endif
+
+#ifndef __MACERRORS__
+#include <MacErrors.h>
+#endif
+
+#ifndef __EVENTS__
+#include <Events.h>
+#endif
+
+
+
+#if PRAGMA_ONCE
+#pragma once
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if PRAGMA_IMPORT
+#pragma import on
+#endif
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=mac68k
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(push, 2)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack(2)
+#endif
+
+/* Data structures and types */
+typedef struct OpaqueURLReference* URLReference;
+typedef UInt32 URLOpenFlags;
+enum {
+ kURLReplaceExistingFlag = 1 << 0,
+ kURLBinHexFileFlag = 1 << 1, /* Binhex before uploading if necessary*/
+ kURLExpandFileFlag = 1 << 2, /* Use StuffIt engine to expand file if necessary*/
+ kURLDisplayProgressFlag = 1 << 3,
+ kURLDisplayAuthFlag = 1 << 4, /* Display auth dialog if guest connection fails*/
+ kURLUploadFlag = 1 << 5, /* Do an upload instead of a download*/
+ kURLIsDirectoryHintFlag = 1 << 6, /* Hint: the URL is a directory*/
+ kURLDoNotTryAnonymousFlag = 1 << 7, /* Don't try to connect anonymously before getting logon info*/
+ kURLDirectoryListingFlag = 1 << 8, /* Download the directory listing, not the whole directory*/
+ kURLExpandAndVerifyFlag = 1 << 9, /* Expand file and then verify using signature resource*/
+ kURLNoAutoRedirectFlag = 1 << 10, /* Do not automatically redirect to new URL*/
+ kURLDebinhexOnlyFlag = 1 << 11, /* Do not use Stuffit Expander - just internal debinhex engine*/
+ kURLDoNotDeleteOnErrorFlag = 1 << 12, /* Do not delete the downloaded file if an error or abort occurs.*/
+ /* This flag applies to downloading only and should be used if*/
+ /* interested in later resuming the download.*/
+ kURLResumeDownloadFlag = 1 << 13, /* The passed in file is partially downloaded, attempt to resume*/
+ /* it. Currently works for HTTP only. If no FSSpec passed in,*/
+ /* this flag will be ignored. Overriden by kURLReplaceExistingFlag. */
+ kURLReservedFlag = (unsigned long)(1 << 31) /* reserved for Apple internal use*/
+};
+
+typedef UInt32 URLState;
+enum {
+ kURLNullState = 0,
+ kURLInitiatingState = 1,
+ kURLLookingUpHostState = 2,
+ kURLConnectingState = 3,
+ kURLResourceFoundState = 4,
+ kURLDownloadingState = 5,
+ kURLDataAvailableState = 0x10 + kURLDownloadingState,
+ kURLTransactionCompleteState = 6,
+ kURLErrorOccurredState = 7,
+ kURLAbortingState = 8,
+ kURLCompletedState = 9,
+ kURLUploadingState = 10
+};
+
+typedef UInt32 URLEvent;
+enum {
+ kURLInitiatedEvent = kURLInitiatingState,
+ kURLResourceFoundEvent = kURLResourceFoundState,
+ kURLDownloadingEvent = kURLDownloadingState,
+ kURLAbortInitiatedEvent = kURLAbortingState,
+ kURLCompletedEvent = kURLCompletedState,
+ kURLErrorOccurredEvent = kURLErrorOccurredState,
+ kURLDataAvailableEvent = kURLDataAvailableState,
+ kURLTransactionCompleteEvent = kURLTransactionCompleteState,
+ kURLUploadingEvent = kURLUploadingState,
+ kURLSystemEvent = 29,
+ kURLPercentEvent = 30,
+ kURLPeriodicEvent = 31,
+ kURLPropertyChangedEvent = 32
+};
+
+typedef unsigned long URLEventMask;
+enum {
+ kURLInitiatedEventMask = 1 << (kURLInitiatedEvent - 1),
+ kURLResourceFoundEventMask = 1 << (kURLResourceFoundEvent - 1),
+ kURLDownloadingMask = 1 << (kURLDownloadingEvent - 1),
+ kURLUploadingMask = 1 << (kURLUploadingEvent - 1),
+ kURLAbortInitiatedMask = 1 << (kURLAbortInitiatedEvent - 1),
+ kURLCompletedEventMask = 1 << (kURLCompletedEvent - 1),
+ kURLErrorOccurredEventMask = 1 << (kURLErrorOccurredEvent - 1),
+ kURLDataAvailableEventMask = 1 << (kURLDataAvailableEvent - 1),
+ kURLTransactionCompleteEventMask = 1 << (kURLTransactionCompleteEvent - 1),
+ kURLSystemEventMask = 1 << (kURLSystemEvent - 1),
+ kURLPercentEventMask = 1 << (kURLPercentEvent - 1),
+ kURLPeriodicEventMask = 1 << (kURLPeriodicEvent - 1),
+ kURLPropertyChangedEventMask = 1 << (kURLPropertyChangedEvent - 1),
+ kURLAllBufferEventsMask = kURLDataAvailableEventMask + kURLTransactionCompleteEventMask,
+ kURLAllNonBufferEventsMask = kURLInitiatedEventMask + kURLDownloadingMask + kURLUploadingMask + kURLAbortInitiatedMask + kURLCompletedEventMask + kURLErrorOccurredEventMask + kURLPercentEventMask + kURLPeriodicEventMask + kURLPropertyChangedEventMask,
+ kURLAllEventsMask = (long)0xFFFFFFFF
+};
+
+
+struct URLCallbackInfo {
+ UInt32 version;
+ URLReference urlRef;
+ const char * property;
+ UInt32 currentSize;
+ EventRecord * systemEvent;
+};
+typedef struct URLCallbackInfo URLCallbackInfo;
+
+/* authentication type flags*/
+enum {
+ kUserNameAndPasswordFlag = 0x00000001
+};
+
+#define kURLURL "URLString"
+#define kURLResourceSize "URLResourceSize"
+#define kURLLastModifiedTime "URLLastModifiedTime"
+#define kURLMIMEType "URLMIMEType"
+#define kURLFileType "URLFileType"
+#define kURLFileCreator "URLFileCreator"
+#define kURLCharacterSet "URLCharacterSet"
+#define kURLResourceName "URLResourceName"
+#define kURLHost "URLHost"
+#define kURLAuthType "URLAuthType"
+#define kURLUserName "URLUserName"
+#define kURLPassword "URLPassword"
+#define kURLStatusString "URLStatusString"
+#define kURLIsSecure "URLIsSecure"
+#define kURLCertificate "URLCertificate"
+#define kURLTotalItems "URLTotalItems"
+#define kURLConnectTimeout "URLConnectTimeout"
+/* http and https properties*/
+#define kURLHTTPRequestMethod "URLHTTPRequestMethod"
+#define kURLHTTPRequestHeader "URLHTTPRequestHeader"
+#define kURLHTTPRequestBody "URLHTTPRequestBody"
+#define kURLHTTPRespHeader "URLHTTPRespHeader"
+#define kURLHTTPUserAgent "URLHTTPUserAgent"
+#define kURLHTTPRedirectedURL "URLHTTPRedirectedURL"
+#define kURLSSLCipherSuite "URLSSLCipherSuite"
+
+
+
+
+/*
+ * URLGetURLAccessVersion()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLGetURLAccessVersion(UInt32 * returnVers);
+
+
+
+#if TARGET_RT_MAC_CFM
+#ifdef __cplusplus
+ inline pascal Boolean URLAccessAvailable() { return ((URLGetURLAccessVersion != (void*)kUnresolvedCFragSymbolAddress) ); }
+#else
+ #define URLAccessAvailable() ((URLGetURLAccessVersion != (void*)kUnresolvedCFragSymbolAddress) )
+#endif
+#elif TARGET_RT_MAC_MACHO
+/* URL Access is always available on OS X */
+#ifdef __cplusplus
+ inline pascal Boolean URLAccessAvailable() { return true; }
+#else
+ #define URLAccessAvailable() (true)
+#endif
+#endif /* */
+
+typedef CALLBACK_API( OSStatus , URLNotifyProcPtr )(void *userContext, URLEvent event, URLCallbackInfo *callbackInfo);
+typedef CALLBACK_API( OSStatus , URLSystemEventProcPtr )(void *userContext, EventRecord *event);
+typedef TVECTOR_UPP_TYPE(URLNotifyProcPtr) URLNotifyUPP;
+typedef TVECTOR_UPP_TYPE(URLSystemEventProcPtr) URLSystemEventUPP;
+/*
+ * NewURLNotifyUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( URLNotifyUPP )
+NewURLNotifyUPP(URLNotifyProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppURLNotifyProcInfo = 0x00000FF0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(URLNotifyUPP) NewURLNotifyUPP(URLNotifyProcPtr userRoutine) { return userRoutine; }
+ #else
+ #define NewURLNotifyUPP(userRoutine) (userRoutine)
+ #endif
+#endif
+
+/*
+ * NewURLSystemEventUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( URLSystemEventUPP )
+NewURLSystemEventUPP(URLSystemEventProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppURLSystemEventProcInfo = 0x000003F0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(URLSystemEventUPP) NewURLSystemEventUPP(URLSystemEventProcPtr userRoutine) { return userRoutine; }
+ #else
+ #define NewURLSystemEventUPP(userRoutine) (userRoutine)
+ #endif
+#endif
+
+/*
+ * DisposeURLNotifyUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeURLNotifyUPP(URLNotifyUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeURLNotifyUPP(URLNotifyUPP) {}
+ #else
+ #define DisposeURLNotifyUPP(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeURLSystemEventUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeURLSystemEventUPP(URLSystemEventUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeURLSystemEventUPP(URLSystemEventUPP) {}
+ #else
+ #define DisposeURLSystemEventUPP(userUPP)
+ #endif
+#endif
+
+/*
+ * InvokeURLNotifyUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+InvokeURLNotifyUPP(
+ void * userContext,
+ URLEvent event,
+ URLCallbackInfo * callbackInfo,
+ URLNotifyUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSStatus) InvokeURLNotifyUPP(void * userContext, URLEvent event, URLCallbackInfo * callbackInfo, URLNotifyUPP userUPP) { return (*userUPP)(userContext, event, callbackInfo); }
+ #else
+ #define InvokeURLNotifyUPP(userContext, event, callbackInfo, userUPP) (*userUPP)(userContext, event, callbackInfo)
+ #endif
+#endif
+
+/*
+ * InvokeURLSystemEventUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+InvokeURLSystemEventUPP(
+ void * userContext,
+ EventRecord * event,
+ URLSystemEventUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSStatus) InvokeURLSystemEventUPP(void * userContext, EventRecord * event, URLSystemEventUPP userUPP) { return (*userUPP)(userContext, event); }
+ #else
+ #define InvokeURLSystemEventUPP(userContext, event, userUPP) (*userUPP)(userContext, event)
+ #endif
+#endif
+
+/*
+ * URLSimpleDownload()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLSimpleDownload(
+ const char * url,
+ FSSpec * destination, /* can be NULL */
+ Handle destinationHandle, /* can be NULL */
+ URLOpenFlags openFlags,
+ URLSystemEventUPP eventProc, /* can be NULL */
+ void * userContext); /* can be NULL */
+
+
+/*
+ * URLDownload()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLDownload(
+ URLReference urlRef,
+ FSSpec * destination, /* can be NULL */
+ Handle destinationHandle, /* can be NULL */
+ URLOpenFlags openFlags,
+ URLSystemEventUPP eventProc, /* can be NULL */
+ void * userContext); /* can be NULL */
+
+
+/*
+ * URLSimpleUpload()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLSimpleUpload(
+ const char * url,
+ const FSSpec * source,
+ URLOpenFlags openFlags,
+ URLSystemEventUPP eventProc, /* can be NULL */
+ void * userContext); /* can be NULL */
+
+
+/*
+ * URLUpload()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLUpload(
+ URLReference urlRef,
+ const FSSpec * source,
+ URLOpenFlags openFlags,
+ URLSystemEventUPP eventProc, /* can be NULL */
+ void * userContext); /* can be NULL */
+
+
+/*
+ * URLNewReference()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLNewReference(
+ const char * url,
+ URLReference * urlRef);
+
+
+/*
+ * URLDisposeReference()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLDisposeReference(URLReference urlRef);
+
+
+/*
+ * URLOpen()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLOpen(
+ URLReference urlRef,
+ FSSpec * fileSpec, /* can be NULL */
+ URLOpenFlags openFlags,
+ URLNotifyUPP notifyProc, /* can be NULL */
+ URLEventMask eventRegister,
+ void * userContext); /* can be NULL */
+
+
+/*
+ * URLAbort()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLAbort(URLReference urlRef);
+
+
+/*
+ * URLGetDataAvailable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLGetDataAvailable(
+ URLReference urlRef,
+ Size * dataSize);
+
+
+/*
+ * URLGetBuffer()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLGetBuffer(
+ URLReference urlRef,
+ void ** buffer,
+ Size * bufferSize);
+
+
+/*
+ * URLReleaseBuffer()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLReleaseBuffer(
+ URLReference urlRef,
+ void * buffer);
+
+
+/*
+ * URLGetProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLGetProperty(
+ URLReference urlRef,
+ const char * property,
+ void * propertyBuffer,
+ Size bufferSize);
+
+
+/*
+ * URLGetPropertySize()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLGetPropertySize(
+ URLReference urlRef,
+ const char * property,
+ Size * propertySize);
+
+
+/*
+ * URLSetProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLSetProperty(
+ URLReference urlRef,
+ const char * property,
+ void * propertyBuffer,
+ Size bufferSize);
+
+
+/*
+ * URLGetCurrentState()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLGetCurrentState(
+ URLReference urlRef,
+ URLState * state);
+
+
+/*
+ * URLGetError()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLGetError(
+ URLReference urlRef,
+ OSStatus * urlError);
+
+
+/*
+ * URLIdle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLIdle(void);
+
+
+/*
+ * URLGetFileInfo()
+ *
+ * Availability:
+ * Non-Carbon CFM: in URLAccessLib 1.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+URLGetFileInfo(
+ StringPtr fName,
+ OSType * fType,
+ OSType * fCreator);
+
+
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=reset
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(pop)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack()
+#endif
+
+#ifdef PRAGMA_IMPORT_OFF
+#pragma import off
+#elif PRAGMA_IMPORT
+#pragma import reset
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __URLACCESS__ */
+