A very unusual question... as some of these belong to a collection of APIs, and you apparently don't seem to care about the rest of them or have already found something equivilent.
You also leave out a lot of information, which makes it really hard to help you. You will need a give some more information on what you are trying to do on some of them if you expect us to answer you in a helpful manner. I have done my best to be helpful where the answer is easy enough to find.
1. InitializeSecurityDescriptor
9. IsValidSecurityDescriptor
Depends on what you want to do with said descriptor. This isn't something that can be answered based on how little information you provide.
2. InterlockedCompareExchange
3. InterlockedDecrement
4. InterlockedExchange
5. InterlockedIncrement
You want the OS APIs that do atomic operations on integers.
http://developer.apple.com/documentation/Darwin/Reference/ManPages/man3/atomic.3.html
No, and there is no usefulness in such a method.
Even in Windows, you should avoid using this method:
Code:
Important This function is obsolete and should not be used. Despite its name, it does not guarantee that the pointer is valid or that the memory pointed to is safe to use. For more information, see Remarks on this page.
7. IsValidCodePage
8. IsValidLocale
12. LCMapStringW
Encodings are handled fairly differently on OS X than Windows. Instead of assuming you are using wide string arrays like in Win32, OS X wraps up all the encoding nastiness behind CFString and NSString. So converting from one to another is done using the CFString API directly.
http://developer.apple.com/document...Conceptual/CFStrings/Articles/Converting.html
As for checking if a code page or locale is valid... all code pages supported by the OS are valid. If you want information on the preferred and known locales that the system has, you can use the CFLocale API set.
http://developer.apple.com/document...eference/CFLocaleRef/Reference/reference.html
This is very specific to what you are trying to do. In Carbon and Cocoa, they have very different handling of windows (as the developer sees them, anyways)... so I can't really give any generic advice here without knowing what the code is trying to do.
The API collection you use to create and setup the timer will have a similar API for killing the timer. You will want to use the documentation you (hopefully) looked up on how to create a timer to find out how to tear down the timer you are using.
You will want a mutex on POSIX systems (like OS X) rather than a critical section. They offer the same behavior. You can do this a few different ways.
NSRecursiveLock (Cocoa):
http://developer.apple.com/document...SRecursiveLock_Class/Reference/Reference.html
MPEnterCriticalRegion (Carbon):
http://developer.apple.com/document...MultiproServ/03tasks/chapter_3_section_9.html
pthread mutexes (POSIX/Carbon/Cocoa):
http://developer.apple.com/documentation/Darwin/Reference/ManPages/man3/pthread.3.html
This entirely depends on what you expect to do with the library you are attempting to load. For DLLs that your app requires as a framework/library, there isn't really any replacement. Dynamic linking is handled quite differently on OS X in general, and your code will have to adapt.
If you are trying to provide a plugin architecture, the mechanism for doing so is very different. Apple does have guides for this...
http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFPlugIns/CFPlugIns.html