URLAccess.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:14k
- /*
- File: URLAccess.h
-
- Contains: URL Access Interfaces.
-
- Version: Technology: URLAccess 2.0
- Release: QuickTime 6.0.2
-
- Copyright: (c) 1994-2001 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 __FILESIGNING__
- #include "FileSigning.h"
- #endif
- #ifndef __MACERRORS__
- #include "MacErrors.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*/
- 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;
- static const char* kURLURL = "URLString";
- static const char* kURLResourceSize = "URLResourceSize";
- static const char* kURLLastModifiedTime = "URLLastModifiedTime";
- static const char* kURLMIMEType = "URLMIMEType";
- static const char* kURLFileType = "URLFileType";
- static const char* kURLFileCreator = "URLFileCreator";
- static const char* kURLCharacterSet = "URLCharacterSet";
- static const char* kURLResourceName = "URLResourceName";
- static const char* kURLHost = "URLHost";
- static const char* kURLAuthType = "URLAuthType";
- static const char* kURLUserName = "URLUserName";
- static const char* kURLPassword = "URLPassword";
- static const char* kURLStatusString = "URLStatusString";
- static const char* kURLIsSecure = "URLIsSecure";
- static const char* kURLCertificate = "URLCertificate";
- static const char* kURLTotalItems = "URLTotalItems";
- /* http and https properties*/
- static const char* kURLHTTPRequestMethod = "URLHTTPRequestMethod";
- static const char* kURLHTTPRequestHeader = "URLHTTPRequestHeader";
- static const char* kURLHTTPRequestBody = "URLHTTPRequestBody";
- static const char* kURLHTTPRespHeader = "URLHTTPRespHeader";
- static const char* kURLHTTPUserAgent = "URLHTTPUserAgent";
- static const char* kURLHTTPRedirectedURL = "URLHTTPRedirectedURL";
- /* authentication type flags*/
- enum {
- kUserNameAndPasswordFlag = 0x00000001
- };
- 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;
- #if OPAQUE_UPP_TYPES
- EXTERN_API(URLNotifyUPP)
- NewURLNotifyUPP (URLNotifyProcPtr userRoutine);
- EXTERN_API(URLSystemEventUPP)
- NewURLSystemEventUPP (URLSystemEventProcPtr userRoutine);
- EXTERN_API(void)
- DisposeURLNotifyUPP (URLNotifyUPP userUPP);
- EXTERN_API(void)
- DisposeURLSystemEventUPP (URLSystemEventUPP userUPP);
- EXTERN_API(OSStatus)
- InvokeURLNotifyUPP (void * userContext,
- URLEvent event,
- URLCallbackInfo * callbackInfo,
- URLNotifyUPP userUPP);
- EXTERN_API(OSStatus)
- InvokeURLSystemEventUPP (void * userContext,
- EventRecord * event,
- URLSystemEventUPP userUPP);
- #else
- #define NewURLNotifyUPP(userRoutine) (userRoutine)
- #define NewURLSystemEventUPP(userRoutine) (userRoutine)
- #define DisposeURLNotifyUPP(userUPP)
- #define DisposeURLSystemEventUPP(userUPP)
- #define InvokeURLNotifyUPP(userContext, event, callbackInfo, userUPP) (*userUPP)(userContext, event, callbackInfo)
- #define InvokeURLSystemEventUPP(userContext, event, userUPP) (*userUPP)(userContext, event)
- #endif
- EXTERN_API( OSStatus )
- URLSimpleDownload (const char * url,
- FSSpec * destination,
- Handle destinationHandle,
- URLOpenFlags openFlags,
- URLSystemEventUPP eventProc,
- void * userContext);
- EXTERN_API( OSStatus )
- URLDownload (URLReference urlRef,
- FSSpec * destination,
- Handle destinationHandle,
- URLOpenFlags openFlags,
- URLSystemEventUPP eventProc,
- void * userContext);
- EXTERN_API( OSStatus )
- URLSimpleUpload (const char * url,
- const FSSpec * source,
- URLOpenFlags openFlags,
- URLSystemEventUPP eventProc,
- void * userContext);
- EXTERN_API( OSStatus )
- URLUpload (URLReference urlRef,
- const FSSpec * source,
- URLOpenFlags openFlags,
- URLSystemEventUPP eventProc,
- void * userContext);
- EXTERN_API( OSStatus )
- URLNewReference (const char * url,
- URLReference * urlRef);
- EXTERN_API( OSStatus )
- URLDisposeReference (URLReference urlRef);
- EXTERN_API( OSStatus )
- URLOpen (URLReference urlRef,
- FSSpec * fileSpec,
- URLOpenFlags openFlags,
- URLNotifyUPP notifyProc,
- URLEventMask eventRegister,
- void * userContext);
- EXTERN_API( OSStatus )
- URLAbort (URLReference urlRef);
- EXTERN_API( OSStatus )
- URLGetDataAvailable (URLReference urlRef,
- Size * dataSize);
- EXTERN_API( OSStatus )
- URLGetBuffer (URLReference urlRef,
- void ** buffer,
- Size * bufferSize);
- EXTERN_API( OSStatus )
- URLReleaseBuffer (URLReference urlRef,
- void * buffer);
- EXTERN_API( OSStatus )
- URLGetProperty (URLReference urlRef,
- const char * property,
- void * propertyBuffer,
- Size bufferSize);
- EXTERN_API( OSStatus )
- URLGetPropertySize (URLReference urlRef,
- const char * property,
- Size * propertySize);
- EXTERN_API( OSStatus )
- URLSetProperty (URLReference urlRef,
- const char * property,
- void * propertyBuffer,
- Size bufferSize);
- EXTERN_API( OSStatus )
- URLGetCurrentState (URLReference urlRef,
- URLState * state);
- EXTERN_API( OSStatus )
- URLGetError (URLReference urlRef,
- OSStatus * urlError);
- EXTERN_API( OSStatus )
- URLIdle (void);
- 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__ */