我继承了大约OSX 10.5 / 10.7的遗留代码,需要升级到OSX 10.9。我发现推荐的代码现已弃用,但我不知道该替换它的内容。例如,我有以下内容:
01 HParamBlockRec pb;
02
03 /* check parameters */
04 require_action((NULL != volParmsInfo) && (NULL != actualInfoSize),
05 BadParameter, result = paramErr);
06
07 pb.ioParam.ioNamePtr = NULL;
08 pb.ioParam.ioVRefNum = volRefNum;
09 pb.ioParam.ioBuffer = (Ptr)volParmsInfo;
10 pb.ioParam.ioReqCount = (SInt32)bufferSize;
11 result = PBHGetVolParmsSync(&pb);
网页搜索告诉我的可以替换为
1 result = FSGetVolumeParms(volRefNum, volParmsInfo, sizeof(volParmsInfo));
但是,此网页也表示已弃用:Framework CoreServices/CoreServices.h
所以更多的网络搜索找到以下web page,其中说:"文件管理器 是OS X中管理组织,阅读和写作的核心服务数据位于物理数据存储设备上,例如磁盘驱动器。"似乎替换方法需要知道所请求的内容,以前的方法在调用者不需要指定的信息之后。
有什么方法可以弄清楚信息是什么?结构GetVolParmsInfoBuffer似乎可用,但是当我不知道要求什么时,如何找到关于如何填充结构的示例代码?或者我是否安全地玩并要求每一个可能的钥匙?这似乎不是很好的编码实践,但也许它是唯一的解决方案。
有什么想法吗?