/* * ICeCoffEESharing.c * ICeCoffEE * * Created by Nicholas Riley on 4/9/08. * Copyright 2008 Nicholas Riley. All rights reserved. * */ #include "ICeCoffEEConfig.h" #include "ICeCoffEESharing.h" #define CHECK_ERR(c) if ( (err = (c)) != noErr) goto END; OSStatus ICCF_CopyLink(CFStringRef url) { PasteboardRef clipboard = NULL; CFDataRef data = NULL; OSStatus err; CHECK_ERR(PasteboardCreate(kPasteboardClipboard, &clipboard)); CHECK_ERR(PasteboardClear(clipboard)); data = CFStringCreateExternalRepresentation(NULL, url, kCFStringEncodingASCII, 0); if (data != NULL) CHECK_ERR(PasteboardPutItemFlavor(clipboard, NULL, kUTTypeURL, data, kPasteboardFlavorNoFlags)); SAFE_RELEASE(data); data = CFStringCreateExternalRepresentation(NULL, url, kCFStringEncodingUnicode, 0); if (data != NULL) CHECK_ERR(PasteboardPutItemFlavor(clipboard, NULL, kUTTypeUTF16ExternalPlainText, data, kPasteboardFlavorNoFlags)); err = userCanceledErr; // don't flash URL END: SAFE_RELEASE(data); SAFE_RELEASE(clipboard); return err; }