Source

NSURLConnectionVCR / NSURLConnectionVCRQuicklook / GeneratePreviewForURL.m

#include <CoreFoundation/CoreFoundation.h>
#include <CoreServices/CoreServices.h>
#include <QuickLook/QuickLook.h>
#import "VCRGetPreview.h"

OSStatus GeneratePreviewForURL(void *thisInterface, QLPreviewRequestRef preview, CFURLRef url, CFStringRef contentTypeUTI, CFDictionaryRef options);
//void CancelPreviewGeneration(void *thisInterface, QLPreviewRequestRef preview);


OSStatus GeneratePreviewForURL(void *thisInterface, QLPreviewRequestRef preview, CFURLRef url, CFStringRef contentTypeUTI, CFDictionaryRef options) {
    NSData* responseData = nil;
    NSString* displayName = nil;
    NSString* textEncoding = nil;
    NSString* mimeType = nil;
    NSString* UTType = nil;
    
    OSStatus status = VCRGetPreviewData((__bridge NSURL*)url, &responseData, NULL, &displayName, &mimeType, &UTType, &textEncoding);
    
    if (status == noErr && displayName && textEncoding && responseData && UTType) {
        NSMutableDictionary *props = [[NSMutableDictionary alloc] init];
        [props setObject:displayName forKey:(NSString*)kQLPreviewPropertyDisplayNameKey];
        [props setObject:textEncoding forKey:(NSString *)kQLPreviewPropertyTextEncodingNameKey];
        QLPreviewRequestSetDataRepresentation(preview, (__bridge CFDataRef)responseData, (__bridge CFStringRef)UTType, (__bridge CFDictionaryRef)props);
        return noErr;
    } else {
        return -1;
    }
}

//void CancelPreviewGeneration(void *thisInterface, QLPreviewRequestRef preview)
//{
//    // Implement only if supported
//}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.