C++から Excelの制御を行うのに以下のような記述をした。
#include ~
#include ~#import”libid:00020813-0000-0000-C000-000000000046″\
auto_search auto_rename rename_search_namespace(“Office”)\
rename(“RGB”,”__RGB”)\
rename(“SearchPath”,”__SearchPath”)\
rename(“DialogBox”,”__DialogBox”)\
rename(“CopyFile”,”__CopyFile”)\
rename(“ReplaceText”,”__ReplaceText”)\
exclude(“IFont”,”IPicture”)
すると、「関数に似たマクロ呼び出し ‘GetFirstChild’ の引数が不足しています」「関数に似たマクロ呼び出し ‘GetNextSibling’ の引数が不足しています」などのエラーに悩まされる。
Windows APIの同名関数がマクロで実装されており、名前がかぶるのが原因なのだけれど、renameの指定などをしても解消しない。
最終的に importの指定を include~より前に持っていって解決。
各マクロは widowsx.hで定義されているので、importはそれより前に記述しろってことで良いのかね?