本文整理汇总了C++中HLock函数的典型用法代码示例。如果您正苦于以下问题:C++ HLock函数的具体用法?C++ HLock怎么用?C++ HLock使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了HLock函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: DrawImage
void DrawImage( void )
{
OSErr err = noErr;
Handle hOpenTypeList = NewHandle(0);
long numTypes = 0;
FSSpec theFSSpec;
Rect bounds;
GraphicsImportComponent importer = 0;
BuildGraphicsImporterValidFileTypes( hOpenTypeList, &numTypes );
HLock( hOpenTypeList );
err = GetOneFileWithPreview(numTypes, (OSTypePtr)*hOpenTypeList, &theFSSpec, NULL);
DisposeHandle( hOpenTypeList );
if ( err ) return;
// locate and open a graphics importer component which can be used to draw the
// selected file. If a suitable importer is not found the ComponentInstance
// is set to NULL.
err = GetGraphicsImporterForFile( &theFSSpec, // specifies the file to be drawn
&importer ); // pointer to the returned GraphicsImporterComponent
// get the native size of the image associated with the importer
err = GraphicsImportGetNaturalBounds( importer, // importer instance
&bounds ); // returned bounds
OffsetRect( &bounds, 10, 45 );
window = NewCWindow( NULL, &bounds, "\pDraw Image", true, documentProc, (WindowPtr)-1, true, 0);
// set the graphics port for drawing
err = GraphicsImportSetGWorld( importer, // importer instance
GetWindowPort( window ), // destination graphics port or GWorld
NULL ); // destination GDevice, set to NULL uses GWorlds device
// draw the image
err = GraphicsImportDraw( importer );
// close the importer instance
CloseComponent( importer );
}
开发者ID:fruitsamples,项目名称:ImproveYourImage,代码行数:40,代码来源:DrawImage.c
示例2: P0
P0(PUBLIC pascal trap, LONGINT, UnloadScrap)
{
OSErr retval;
INTEGER f;
LONGINT l = Cx(ScrapSize);
if (Cx(ScrapState) > 0) {
retval = cropen(&f);
if (retval != noErr)
/*-->*/ return(retval);
HLock(MR(ScrapHandle));
retval = FSWriteAll(f, &l, STARH(MR(ScrapHandle)));
HUnlock(MR(ScrapHandle));
if (retval != noErr)
/*-->*/ return(retval);
retval = FSClose(f);
if (retval != noErr)
/*-->*/ return(retval);
ScrapState = 0;
}
return noErr;
}
开发者ID:LarBob,项目名称:executor,代码行数:22,代码来源:scrap.c
示例3: CurResFile
//_______________________________________________________________________________
OSErr WriteRsrc (Handle rsrc, ResType type, short ID, short resFile)
{
OSErr err; Handle h;
short saved;
saved = CurResFile();
UseResFile( resFile);
if ((err= ResError())!=noErr) return err;
h= GetResource (type, ID);
if (h) RemoveResource (h);
HLock (rsrc);
AddResource( rsrc, type, ID, "\p");
err= ResError();
if( err== noErr) {
UpdateResFile( resFile);
err= ResError();
}
HUnlock( rsrc);
UseResFile( saved);
return err;
}
开发者ID:AntonLanghoff,项目名称:whitecatlib,代码行数:23,代码来源:msRsrc.c
示例4: GetAEDataHandle
// ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
// ¥ GetAEDataHandle /*e*/
// ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
// Returns the AE data handle from the desc. You have to dispose of this handle.
Handle GetAEDataHandle(
const AEDesc &inDesc)
{
Size size;
size=::AEGetDescDataSize(&inDesc);
Handle h=::NewHandle(size);
ThrowIfMemFull_(h);
HLock(h);
OSErr err=::AEGetDescData(&inDesc,*h,size);
HUnlock(h);
if (err)
{
DisposeHandle(h);
Throw_(err);
}
return h;
}
开发者ID:MaddTheSane,项目名称:tntbasic,代码行数:26,代码来源:AppleEvents.cpp
示例5: GetUserName
static char *
GetUserName()
{
static char buf[33];
short refnum;
Handle h;
refnum = CurResFile();
UseResFile(0);
h = GetResource('STR ', -16096);
UseResFile(refnum);
if (h == NULL) {
return NULL;
}
HLock(h);
strncpy(buf, (*h)+1, **h);
buf[**h] = '\0';
HUnlock(h);
ReleaseResource(h);
return(buf[0] ? buf : NULL);
}
开发者ID:durandj,项目名称:devkitadv,代码行数:22,代码来源:tclMacEnv.c
示例6: SpriteUtils_AddPICTImageToKeyFrameSample
OSErr SpriteUtils_AddPICTImageToKeyFrameSample (QTAtomContainer theKeySample, short thePictID, RGBColor *theKeyColor, QTAtomID theID, FixedPoint *theRegistrationPoint, StringPtr theImageName)
{
PicHandle myPicture = NULL;
Handle myCompressedPicture = NULL;
ImageDescriptionHandle myImageDesc = NULL;
OSErr myErr = noErr;
// get picture from resource
myPicture = (PicHandle)GetPicture(thePictID);
if (myPicture == NULL)
myErr = resNotFound;
if (myErr != noErr)
goto bail;
DetachResource((Handle)myPicture);
// convert it to image data compressed by the animation compressor
myErr = ICUtils_RecompressPictureWithTransparency(myPicture, theKeyColor, NULL, &myImageDesc, &myCompressedPicture);
if (myErr != noErr)
goto bail;
// add it to the key sample
HLock(myCompressedPicture);
myErr = SpriteUtils_AddCompressedImageToKeyFrameSample(theKeySample, myImageDesc, GetHandleSize(myCompressedPicture), *myCompressedPicture, theID, theRegistrationPoint, theImageName);
bail:
if (myPicture != NULL)
KillPicture(myPicture);
if (myCompressedPicture != NULL)
DisposeHandle(myCompressedPicture);
if (myImageDesc != NULL)
DisposeHandle((Handle)myImageDesc);
return(myErr);
}
开发者ID:fruitsamples,项目名称:qtactiontargets.win,代码行数:38,代码来源:SpriteUtilities.c
示例7: Printer_postScript_printf
int Printer_postScript_printf (void *stream, const char *format, ... ) {
#if defined (_WIN32)
static union { char chars [3002]; short shorts [1501]; } theLine;
#elif cocoa
#elif defined (macintosh)
static Handle theLine;
#endif
int length;
va_list args;
va_start (args, format);
(void) stream;
#if cocoa
#elif defined (_WIN32)
vsprintf (theLine.chars + 2, format, args);
length = strlen (theLine.chars + 2);
theLine.shorts [0] = length;
if (length > 0 && theLine.chars [length + 1] == '\n') {
theLine.chars [length + 1] = '\r';
theLine.chars [length + 2] = '\n';
theLine.chars [length + 3] = '\0';
length ++;
}
Escape (theWinDC, POSTSCRIPT_PASSTHROUGH, length + 2, theLine.chars, nullptr);
#elif defined (macintosh)
if (! theLine) {
theLine = NewHandle (3000);
HLock (theLine);
}
vsprintf (*theLine, format, args);
length = strlen (*theLine);
if (length > 0 && (*theLine) [length - 1] == '\n')
(*theLine) [length - 1] = '\r';
SetPort (theMacPort);
PMSessionPostScriptData (theMacPrintSession, *theLine, strlen (*theLine));
#endif
va_end (args);
return 1;
}
开发者ID:ffostertw,项目名称:praat,代码行数:38,代码来源:Printer.cpp
示例8: setupNewMacros
void setupNewMacros(NewMacroInfo *macrost) // RAB BetterTelnet 2.0b5
{
Handle macroHandle;
Ptr pos;
long len;
short i;
len = NUM_MACROS;
macrost->handle = macroHandle = myNewHandle(len);
HLock(macroHandle);
pos = *macroHandle;
while (len) {
*pos = 0;
pos++;
len--;
}
for (i = 0; i < NUM_MACROS; i++)
macrost->index[i] = i;
HUnlock(macroHandle);
}
开发者ID:macssh,项目名称:macssh,代码行数:23,代码来源:macros.c
示例9: ProgressMsgInit
void
ProgressMsgInit()
{
Rect r;
if (gControls->tw->allProgressMsg)
{
HLock((Handle)gControls->tw->allProgressMsg);
SetRect(&r, (*gControls->tw->allProgressMsg)->viewRect.left,
(*gControls->tw->allProgressMsg)->viewRect.top,
(*gControls->tw->allProgressMsg)->viewRect.right,
(*gControls->tw->allProgressMsg)->viewRect.bottom );
HUnlock((Handle)gControls->tw->allProgressMsg);
TESetText("", 0, gControls->tw->allProgressMsg);
EraseRect(&r);
}
bProgMsgInit = true;
return;
}
开发者ID:rn10950,项目名称:RetroZilla,代码行数:23,代码来源:XPInstallGlue.c
示例10: MakeXIconWithIPIcon
/* create icns(icon for MacOS X) with IPIcon */
OSErr MakeXIconWithIPIcon(const FSSpec *theFile,const IPIconRec *ipIcon)
{
OSErr err;
FInfo fndrInfo;
short refNum;
IconFamilyHandle iconFamily;
long count;
if (!isIconServicesAvailable) return -1;
/* convert IPIcon to icns */
err=IPIconToIconFamily(ipIcon,&iconFamily);
if (err!=noErr) return err;
/* create a file */
err=FSpGetFInfo(theFile,&fndrInfo);
if (err==fnfErr)
err=FSpCreate(theFile,kIconPartyCreator,kXIconFileType,smSystemScript);
if (err!=noErr) return err;
/* open the file */
err=FSpOpenDF(theFile,fsWrPerm,&refNum);
if (err!=noErr) return err;
/* save icns */
HLock((Handle)iconFamily);
count=GetHandleSize((Handle)iconFamily);
err=FSWrite(refNum,&count,*iconFamily);
err=SetEOF(refNum,count);
HUnlock((Handle)iconFamily);
DisposeHandle((Handle)iconFamily);
/* close the file */
err=FSClose(refNum);
return noErr;
}
开发者ID:amatubu,项目名称:iconparty,代码行数:38,代码来源:IPIconSupport.c
示例11: CleanupExtractedFiles
OSErr
CleanupExtractedFiles(short tgtVRefNum, long tgtDirID)
{
OSErr err = noErr;
FSSpec coreDirFSp;
StringPtr pcoreDir = nil;
short i = 0;
HLock(gControls->cfg->coreDir);
if (*gControls->cfg->coreDir != NULL && **gControls->cfg->coreDir != NULL)
{
// just need to delete the core dir and its contents
pcoreDir = CToPascal(*gControls->cfg->coreDir);
err = FSMakeFSSpec(tgtVRefNum, tgtDirID, pcoreDir, &coreDirFSp);
if (err == noErr)
{
err = FSpDelete( &coreDirFSp );
}
HUnlock(gControls->cfg->coreDir);
goto aurevoir;
}
HUnlock(gControls->cfg->coreDir);
// otherwise iterate through coreFileList deleteing each individually
for (i=0; i<currCoreFile+1; i++)
{
FSpDelete( &coreFileList[i] );
}
aurevoir:
if (pcoreDir)
DisposePtr((Ptr) pcoreDir);
return err;
}
开发者ID:rn10950,项目名称:RetroZilla,代码行数:37,代码来源:Deflation.c
示例12: FT_New_Face_From_SFNT
/* Create a new FT_Face from an SFNT resource, specified by res ID. */
static
FT_Error FT_New_Face_From_SFNT( FT_Library library,
short sfnt_id,
FT_Long face_index,
FT_Face* aface )
{
Handle sfnt = NULL;
FT_Byte* sfnt_data;
size_t sfnt_size;
FT_Stream stream = NULL;
FT_Error error = 0;
FT_Memory memory = library->memory;
sfnt = GetResource( 'sfnt', sfnt_id );
if ( ResError() )
return FT_Err_Invalid_Handle;
sfnt_size = (FT_ULong)GetHandleSize( sfnt );
if ( ALLOC( sfnt_data, (FT_Long)sfnt_size ) )
{
ReleaseResource( sfnt );
return error;
}
HLock( sfnt );
memcpy( sfnt_data, *sfnt, sfnt_size );
HUnlock( sfnt );
ReleaseResource( sfnt );
return open_face_from_buffer( library,
sfnt_data,
sfnt_size,
face_index,
"truetype",
aface );
}
开发者ID:Joincheng,项目名称:lithtech,代码行数:38,代码来源:ftmac.c
示例13: MakeTintMapShifted
// This routine takes a CTab and generates a mapping array which will map one colour onto the best
// tinted colour in the palette. It makes no attempt to change the colours in the palette, they
// are mapped to the closest match.
void MakeTintMapShifted(CTabHandle theClut,TintPtr theTint,long rShift,long gShift,long bShift)
{
char origState=HGetState((Handle)theClut);
RGBColor theCol;
short count,index;
Boolean openedWorld=false;
HLock((Handle)theClut);
CTabChanged(theClut); // important, otherwise the remapping goes : "fsd;jhgflkasrhgflkdsavbn.asdkjrhvliuabhdv.kjhopsd; jrg;osnalkgvsa;rlfjhlkhbeoirlh"
if (!gBL_TintWorld)
{
OpenTintWorld(theClut);
openedWorld=true;
}
if (gBL_TintWorld)
{
for(count=0; count<=(**theClut).ctSize; count++)
{
theCol=(**theClut).ctTable[count].rgb;
ShiftColour(&theCol,rShift,gShift,bShift);
index=RGB2IndexGW(theClut,&theCol);
if (index!=-1) // if a match could not be found then put the original colour in
theTint[count]=index;
else
theTint[count]=count;
}
if (openedWorld)
CloseTintWorld();
}
HSetState((Handle)theClut,origState);
}
开发者ID:MaddTheSane,项目名称:tntbasic,代码行数:39,代码来源:BLAST+Tint.c
示例14: ResObj_set_data
static int ResObj_set_data(ResourceObject *self, PyObject *v, void *closure)
{
char *data;
long size;
if ( v == NULL )
return -1;
if ( !PyString_Check(v) )
return -1;
size = PyString_Size(v);
data = PyString_AsString(v);
/* XXXX Do I need the GetState/SetState calls? */
SetHandleSize(self->ob_itself, size);
if ( MemError())
return -1;
HLock(self->ob_itself);
memcpy((char *)*self->ob_itself, data, size);
HUnlock(self->ob_itself);
/* XXXX Should I do the Changed call immedeately? */
return 0;
return 0;
}
开发者ID:0xcc,项目名称:python-read,代码行数:24,代码来源:_Resmodule.c
示例15: PAS_decodeResource
OSErr PAS_decodeResource(PASEntry *entry, FSSpec *outFile, short inRefNum)
{
OSErr err = noErr;
short outRefNum;
PASResFork info;
SInt32 infoSize;
short oldResFile;
PASResource pasRes;
SInt32 pasResSize;
long bufSize;
Handle buffer;
long counter=0;
infoSize = sizeof(PASResFork);
err = SetFPos(inRefNum, fsFromStart, (*entry).entryOffset );
if (err != noErr) return err;
err = FSRead( inRefNum, &infoSize, &info);
if (err != noErr) return err;
if(infoSize != sizeof(PASResFork))
{
err = -1;
goto error;
}
oldResFile=CurResFile();
outRefNum = FSpOpenResFile(outFile, fsRdWrPerm);
if (outRefNum < noErr) return outRefNum;
UseResFile(outRefNum);
while (1)
{
pasResSize = sizeof(PASResource);
err = FSRead( inRefNum, &pasResSize, &pasRes);
if (err != noErr)
{
if(err == eofErr)
err = noErr;
break;
}
bufSize = pasRes.length;
buffer = NewHandle(bufSize);
HLock(buffer);
if(buffer == NULL)
{
/* if we did not get our memory, try updateresfile */
HUnlock(buffer);
UpdateResFile(outRefNum);
counter=0;
buffer = NewHandle(bufSize);
HLock(buffer);
if(buffer == NULL)
{
err = memFullErr;
break;
}
}
err = FSRead( inRefNum, &bufSize, &(**buffer));
if (err != noErr && err != eofErr) break;
AddResource(buffer, pasRes.attrType, pasRes.attrID, pasRes.attrName);
WriteResource(buffer);
SetResAttrs(buffer, pasRes.attr);
ChangedResource(buffer);
WriteResource(buffer);
ReleaseResource(buffer);
if (counter++ > 100)
{
UpdateResFile(outRefNum);
counter=0;
}
}
error:
UseResFile(oldResFile);
CloseResFile(outRefNum);
return err;
//.........这里部分代码省略.........
开发者ID:binoc-software,项目名称:mozilla-cvs,代码行数:101,代码来源:su_pas.c
示例16: PAS_flattenResource
OSErr PAS_flattenResource(ResType type, short *ids, long count, short source, short dest)
{
long idIndex;
Handle resToCopy;
long handleLength;
PASResource pasResource;
long pasResLen;
OSErr err;
for (idIndex=0; idIndex < count; idIndex++)
{
if( (type == 'SIZE') && ( ids[idIndex] == 1 || ids[idIndex] == 0 ) )
{
/*
We do not want to encode/flatten SIZE 0 or 1 because this
is the resource that the user can modify. Most applications
will not be affected if we remove these resources
*/
}
else
{
resToCopy=Get1Resource(type,ids[idIndex]);
if(!resToCopy)
{
return resNotFound;
}
memset(&pasResource, 0, sizeof(PASResource));
GetResInfo( resToCopy,
&pasResource.attrID,
&pasResource.attrType,
pasResource.attrName);
pasResource.attr = GetResAttrs(resToCopy);
DetachResource(resToCopy);
HLock(resToCopy);
pasResource.length = GetHandleSize(resToCopy);
handleLength = pasResource.length;
pasResLen = sizeof(PASResource);
err = FSWrite(dest, &pasResLen, &pasResource);
if(err != noErr)
{
return err;
}
err = FSWrite(dest, &handleLength, &(**resToCopy));
if(err != noErr)
{
return err;
}
HUnlock(resToCopy);
DisposeHandle(resToCopy);
}
}
return noErr;
}
开发者ID:binoc-software,项目名称:mozilla-cvs,代码行数:71,代码来源:su_pas.c
示例17: oldsetmacro
void oldsetmacro(short n, char *s) /* Set macro number <n> to the value of s */
{
unsigned char *p;
short num, pos, escape;
short len;
OSErr memError;
if (n<0 || n>9)
return;
// Restrict the maximum length of macros to MACRO_MAX_LEN bytes
len = strlen(s)+1;
if (len > (MACRO_MAX_LEN - 1)) {
len = MACRO_MAX_LEN;
s[MACRO_MAX_LEN - 1] = 0;
}
// If this is an empty string, remove whatever storage might have been used previously
// by this macro.
if (len == 1) {
if (gMacros[n] != nil) {
DisposeHandle(gMacros[n]);
gMacros[n] = nil;
}
return;
}
// If neccessary, create storage for the macro
if (gMacros[n] == nil) {
gMacros[n] = myNewHandle(len);
if (gMacros[n] == nil) { // Memory error
return;
}
}
// Adjust the handle to the proper size (may be making an existing macro longer)
memError = mySetHandleSize(gMacros[n], len);
if (memError != noErr) {
return;
}
HLock(gMacros[n]);
p = (unsigned char *)*gMacros[n];
num = 0;
pos = 0;
escape = 0;
while ( *s) {
if (escape) {
escape = 0;
switch (*s) {
case 'i':
if ( pos >0) {
*p++=num;
*p++=*s;
pos=0;
}
*p++=MACRO_IP;
break;
case '#':
if ( pos >0) {
*p++=num;
*p++=*s;
pos=0;
}
*p++=MACRO_LINES;
break;
case 'n':
if ( pos >0) {
*p++=num;
*p++=*s;
pos=0;
}
*p++='\012';
break;
case 'r':
if ( pos >0) {
*p++=num;
*p++=*s;
pos=0;
}
*p++='\015';
break;
case 't':
if ( pos >0) {
*p++=num;
*p++=*s;
pos=0;
}
*p++='\t';
break;
case '"':
if ( pos >0) {
*p++=num;
*p++=*s;
pos=0;
}
*p++='\"';
break;
//.........这里部分代码省略.........
开发者ID:macssh,项目名称:macssh,代码行数:101,代码来源:macros.c
示例18: getPtrDataRef
osg::Image* QuicktimeImportExport::doImport(unsigned char* data, unsigned int sizeData, const std::string& fileTypeHint)
{
GWorldPtr gworld = 0;
OSType pixelFormat;
int rowStride;
GraphicsImportComponent gicomp = 0;
Rect rectImage;
GDHandle origDevice = 0;
CGrafPtr origPort = 0;
ImageDescriptionHandle desc = 0;
int depth = 32;
unsigned int xsize, ysize;
unsigned char* imageData = 0;
// Data Handle for file data ( & load data from file )
Handle dataRef = getPtrDataRef(data, sizeData, fileTypeHint);
try {
OSErr err = noErr;
// GraphicsImporter - Get Importer for our filetype
GetGraphicsImporterForDataRef(dataRef, 'ptr ', &gicomp);
// GWorld - Get Texture Info
err = GraphicsImportGetNaturalBounds(gicomp, &rectImage);
if (err != noErr) {
throw QTImportExportException(err, "GraphicsImportGetNaturalBounds failed");
}
xsize = (unsigned int)(rectImage.right - rectImage.left);
ysize = (unsigned int)(rectImage.bottom - rectImage.top);
// ImageDescription - Get Image Description
err = GraphicsImportGetImageDescription(gicomp, &desc);
if (err != noErr) {
throw QTImportExportException(err, "GraphicsImportGetImageDescription failed");
}
// ImageDescription - Get Bit Depth
HLock(reinterpret_cast<char **>(desc));
// GWorld - Pixel Format stuff
pixelFormat = k32ARGBPixelFormat; // Make sure its forced...NOTE: i'm pretty sure this cannot be RGBA!
// GWorld - Row stride
rowStride = xsize * 4; // (width * depth_bpp / 8)
// GWorld - Allocate output buffer
imageData = new unsigned char[rowStride * ysize];
// GWorld - Actually Create IT!
QTNewGWorldFromPtr(&gworld, pixelFormat, &rectImage, 0, 0, 0, imageData, rowStride);
if (!gworld) {
throw QTImportExportException(-1, "QTNewGWorldFromPtr failed");
}
// Save old Graphics Device and Graphics Port to reset to later
GetGWorld (&origPort, &origDevice);
// GraphicsImporter - Set Destination GWorld (our buffer)
err = GraphicsImportSetGWorld(gicomp, gworld, 0);
if (err != noErr) {
throw QTImportExportException(err, "GraphicsImportSetGWorld failed");
}
// GraphicsImporter - Set Quality Level
err = GraphicsImportSetQuality(gicomp, codecLosslessQuality);
if (err != noErr) {
throw QTImportExportException(err, "GraphicsImportSetQuality failed");
}
// Lock pixels so that we can draw to our memory texture
if (!GetGWorldPixMap(gworld) || !LockPixels(GetGWorldPixMap(gworld))) {
throw QTImportExportException(0, "GetGWorldPixMap failed");
}
//*** Draw GWorld into our Memory Texture!
GraphicsImportDraw(gicomp);
// Clean up
UnlockPixels(GetGWorldPixMap(gworld));
SetGWorld(origPort, origDevice); // set graphics port to offscreen (we don't need it now)
DisposeGWorld(gworld);
CloseComponent(gicomp);
DisposeHandle(reinterpret_cast<char **>(desc));
DisposeHandle(dataRef);
}
catch (QTImportExportException& e)
{
setError(e.what());
if (gworld) {
UnlockPixels(GetGWorldPixMap(gworld));
SetGWorld(origPort, origDevice); // set graphics port to offscreen (we don't need it now)
DisposeGWorld(gworld);
}
if (gicomp)
CloseComponent(gicomp);
//.........这里部分代码省略.........
开发者ID:aalex,项目名称:osg,代码行数:101,代码来源:QTImportExport.cpp
示例19: MyHLock
void MyHLock(Handle theHandle)
{
HLock(theHandle);
}
开发者ID:fortunto2,项目名称:celtx,代码行数:4,代码来源:nsMacUtils.cpp
示例20: FT_New_Face_From_FOND
FT_New_Face_From_FOND( FT_Library library,
Handle fond,
FT_Long face_index,
FT_Face* aface )
{
short have_sfnt, have_lwfn = 0;
ResID sfnt_id, fond_id;
OSType fond_type;
Str255 fond_name;
Str255 lwfn_file_name;
UInt8 path_lwfn[PATH_MAX];
OSErr err;
FT_Error error = FT_Err_Ok;
/* test for valid `aface' and `library' delayed to */
/* `FT_New_Face_From_XXX' */
GetResInfo( fond, &fond_id, &fond_type, fond_name );
if ( ResError() != noErr || fond_type != TTAG_FOND )
return FT_THROW( Invalid_File_Format );
HLock( fond );
parse_fond( *fond, &have_sfnt, &sfnt_id, lwfn_file_name, face_index );
HUnlock( fond );
if ( lwfn_file_name[0] )
{
ResFileRefNum res;
res = HomeResFile( fond );
if ( noErr != ResError() )
goto found_no_lwfn_file;
#if HAVE_FSREF
{
UInt8 path_fond[PATH_MAX];
FSRef ref;
err = FSGetForkCBInfo( res, kFSInvalidVolumeRefNum,
NULL, NULL, NULL, &ref, NULL );
if ( noErr != err )
goto found_no_lwfn_file;
err = FSRefMakePath( &ref, path_fond, sizeof ( path_fond ) );
if ( noErr != err )
goto found_no_lwfn_file;
error = lookup_lwfn_by_fond( path_fond, lwfn_file_name,
path_lwfn, sizeof ( path_lwfn ) );
if ( !error )
have_lwfn = 1;
}
#elif HAVE_FSSPEC
{
UInt8 path_fond[PATH_MAX];
FCBPBRec pb;
Str255 fond_file_name;
FSSpec spec;
FT_MEM_SET( &spec, 0, sizeof ( FSSpec ) );
FT_MEM_SET( &pb, 0, sizeof ( FCBPBRec ) );
pb.ioNamePtr = fond_file_name;
pb.ioVRefNum = 0;
pb.ioRefNum = res;
pb.ioFCBIndx = 0;
err = PBGetFCBInfoSync( &pb );
if ( noErr != err )
goto found_no_lwfn_file;
err = FSMakeFSSpec( pb.ioFCBVRefNum, pb.ioFCBParID,
fond_file_name, &spec );
if ( noErr != err )
goto found_no_lwfn_file;
err = FT_FSpMakePath( &spec, path_fond, sizeof ( path_fond ) );
if ( noErr != err )
goto found_no_lwfn_file;
error = lookup_lwfn_by_fond( path_fond, lwfn_file_name,
path_lwfn, sizeof ( path_lwfn ) );
if ( !error )
have_lwfn = 1;
}
#endif /* HAVE_FSREF, HAVE_FSSPEC */
}
if ( have_lwfn && ( !have_sfnt || PREFER_LWFN ) )
error = FT_New_Face_From_LWFN( library,
path_lwfn,
//.........这里部分代码省略.........
开发者ID:Wafflespeanut,项目名称:gecko-dev,代码行数:101,代码来源:ftmac.c
注:本文中的HLock函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论