• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Problem calling InternetConfig in Jaguar
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem calling InternetConfig in Jaguar


  • Subject: Re: Problem calling InternetConfig in Jaguar
  • From: Diggory Laycock <email@hidden>
  • Date: Tue, 1 Oct 2002 00:24:32 +0100

Yes, that looks pretty similar to what I do.

I find that the best way to diagnose these kinds of problems is to scatter lots of NSLogs about - so as the program executes it shows you where it's going, and what the different variables are. e.g. NSLog the creator code variable just before you ICSetPref

On Monday, September 30, 2002, at 10:06 pm, Philippe Martin wrote:

At 16:57 +0100 30/09/02, Diggory Laycock wrote:
I use ICSetPref in my prefpane to change helpers - it seems to 'stick' for all kinds of apps (with creator codes).

How do you get the creator code? Here's what I do (that's appCreatorCode that I pass to ICSetPref):

NSFileManager *defaultManager = [ NSFileManager defaultManager ];
NSBundle *appBundle = [ NSBundle bundleWithPath:filepath ];
NSString *appName = [ defaultManager displayNameAtPath:filepath ];
NSDictionary *fileAttributes;
NSString *quote = @"'";
NSString *creatorString;
OSType appCreatorCode;

if ( appBundle ) {
fileAttributes = [ appBundle infoDictionary ];
creatorString = [ [ quote stringByAppendingString:
[ fileAttributes objectForKey:@"CFBundleSignature" ] ]
stringByAppendingString:quote ];
appCreatorCode = NSHFSTypeCodeFromFileType( creatorString );
} else {
fileAttributes = [ defaultManager fileAttributesAtPath:
filepath traverseLink:YES ];
appCreatorCode = [ fileAttributes fileHFSCreatorCode ];
creatorString = NSFileTypeForHFSTypeCode( appCreatorCode );

Could my problem be in there? It doesn't seem so to me, but I'm only an egg.

I have found that if Internet Explorer is open when you make the change - when you quit IE it will stampede all over your changes with its own cached version of the ICHelpers preference.

I haven't seen this. Is that new in Jaguar? OTOH, that doesn't seem to be related to my problem, because the changes I do don't even stick until I quit IE.

Thanks for your reply, anyway.

Philippe



On Monday, September 30, 2002, at 04:13 pm, Philippe Martin wrote:

My application (IC-Switch) gets and sets InternetConfig helpers by calling ICGetPref and ICSetPref. Everything worked fine with Mac OS X 10.1, but in 10.2, only Carbon and Classic applications are recorded by ICSetPref. It returns noErr for Cocoa applications too, but the change doesn't take.

Using Sampler, I can see that System Preferences still calls ICSetPref when setting a helper to a Cocoa application, but then the changes are stored in com.apple.LaunchServices.plist instead of com.apple.internetconfig.plist, and nothing tells me why. All my calls to ICSetPref result in updating only internetconfig.plist.

And when I set a helper to a Cocoa application from System Preferences and then call ICGetPref from my application, I still get the application's creatorCode as OSType and the application's name as a Pascal string, just like I pass them when I call ICSetPref.

I found that InternetConfig moved to HIServices and I fixed my references accordingly, but I didn't find any mention of a change in ICSetPref's parameters (even in InternetConfig.h). Any idea on what I miss? Any suggestion on how to find it out (like how to intercept System Preferences's call to ICSetPref and see the parameters it passes)?

Thanks!

Philippe
--
_____________________________________________________________________ _
Philippe MARTIN (a.k.a. Flip) mailto:email@hidden
http://www.MacrobyteResources.com http://www.Free-Conversant.com
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.


Diggory Laycock
-----------------------
http://www.diggory.net


--
______________________________________________________________________
Philippe MARTIN (a.k.a. Flip) mailto:email@hidden
http://www.MacrobyteResources.com http://www.Free-Conversant.com


Diggory Laycock
-----------------------
http://www.diggory.net
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.

  • Follow-Ups:
    • Re: Problem calling InternetConfig in Jaguar
      • From: Philippe Martin <email@hidden>
  • Prev by Date: Re: see if a key is down
  • Next by Date: Re: Problem calling InternetConfig in Jaguar
  • Previous by thread: Re: Problem calling InternetConfig in Jaguar
  • Next by thread: Re: Problem calling InternetConfig in Jaguar
  • Index(es):
    • Date
    • Thread