>>#define _Item_h_
Now you've gone and done it You've used a reserved name for sure this time

All names starting with an underscore followed by another underscore or an upper case letter are reserved for implementation use.

As this is a C forum, not an MS one, we should try and stick to the rules, imho. Else your boat might not float when it is supposed to!