00001
00002 import "oaidl.idl";
00003 import "ocidl.idl";
00004
00005 typedef enum
00006 {
00007 MPAA = 0,
00008 US_TV = 1,
00009 Canadian_English = 2,
00010 Canadian_French = 3,
00011 Reserved4 = 4,
00012 System5 = 5,
00013 System6 = 6,
00014 Reserved7 = 7,
00015 TvRat_kSystems = 8,
00016 TvRat_SystemDontKnow = 255
00017 } EnTvRat_System;
00018
00019
00020 typedef enum
00021 {
00022 TvRat_0 = 0,
00023 TvRat_1 = 1,
00024 TvRat_2 = 2,
00025 TvRat_3 = 3,
00026 TvRat_4 = 4,
00027 TvRat_5 = 5,
00028 TvRat_6 = 6,
00029 TvRat_7 = 7,
00030 TvRat_kLevels = 8,
00031 TvRat_LevelDontKnow = 255
00032 } EnTvRat_GenericLevel;
00033
00034
00035 typedef enum
00036 {
00037 MPAA_NotApplicable = TvRat_0,
00038 MPAA_G = TvRat_1,
00039 MPAA_PG = TvRat_2,
00040 MPAA_PG13 = TvRat_3,
00041 MPAA_R = TvRat_4,
00042 MPAA_NC17 = TvRat_5,
00043 MPAA_X = TvRat_6,
00044 MPAA_NotRated = TvRat_7
00045 } EnTvRat_MPAA;
00046
00047 typedef enum
00048 {
00049 US_TV_None = TvRat_0,
00050 US_TV_Y = TvRat_1,
00051 US_TV_Y7 = TvRat_2,
00052 US_TV_G = TvRat_3,
00053 US_TV_PG = TvRat_4,
00054 US_TV_14 = TvRat_5,
00055 US_TV_MA = TvRat_6,
00056 US_TV_None7 = TvRat_7
00057 } EnTvRat_US_TV;
00058
00059 typedef enum
00060 {
00061 CAE_TV_Exempt = TvRat_0,
00062 CAE_TV_C = TvRat_1,
00063 CAE_TV_C8 = TvRat_2,
00064 CAE_TV_G = TvRat_3,
00065 CAE_TV_PG = TvRat_4,
00066 CAE_TV_14 = TvRat_5,
00067 CAE_TV_18 = TvRat_6,
00068 CAE_TV_Reserved = TvRat_7
00069 } EnTvRat_CAE_TV;
00070
00071 typedef enum
00072 {
00073 CAF_TV_Exempt = TvRat_0,
00074 CAF_TV_G = TvRat_1,
00075 CAF_TV_8 = TvRat_2,
00076 CAF_TV_13 = TvRat_3,
00077 CAF_TV_16 = TvRat_4,
00078 CAF_TV_18 = TvRat_5,
00079 CAF_TV_Reserved6 = TvRat_6,
00080 CAF_TV_Reserved = TvRat_7
00081 } EnTvRat_CAF_TV;
00082
00083 typedef enum
00084 {
00085 BfAttrNone = 0,
00086 BfIsBlocked = 1,
00087 BfIsAttr_1 = 2,
00088 BfIsAttr_2 = 4,
00089 BfIsAttr_3 = 8,
00090 BfIsAttr_4 = 16,
00091 BfIsAttr_5 = 32,
00092 BfIsAttr_6 = 64,
00093 BfIsAttr_7 = 128,
00094 BfValidAttrSubmask = 255
00095 } BfEnTvRat_GenericAttributes;
00096
00097 typedef enum
00098 {
00099 US_TV_IsBlocked = BfIsBlocked,
00100 US_TV_IsViolent = BfIsAttr_1,
00101 US_TV_IsSexualSituation = BfIsAttr_2,
00102 US_TV_IsAdultLanguage = BfIsAttr_3,
00103 US_TV_IsSexuallySuggestiveDialog = BfIsAttr_4,
00104 US_TV_ValidAttrSubmask = 31
00105 } BfEnTvRat_Attributes_US_TV;
00106
00107 typedef enum
00108 {
00109 MPAA_IsBlocked = BfIsBlocked,
00110 MPAA_ValidAttrSubmask = 1
00111 } BfEnTvRat_Attributes_MPAA;
00112
00113 typedef enum
00114 {
00115 CAE_IsBlocked = BfIsBlocked,
00116 CAE_ValidAttrSubmask = 1
00117 } BfEnTvRat_Attributes_CAE_TV;
00118
00119 typedef enum
00120 {
00121 CAF_IsBlocked = BfIsBlocked,
00122 CAF_ValidAttrSubmask = 1
00123 } BfEnTvRat_Attributes_CAF_TV;
00124
00125
00126 [
00127 object,
00128 uuid(C5C5C5B0-3ABC-11D6-B25B-00C04FA0C026),
00129 dual,
00130 pointer_default(unique)
00131 ]
00132 interface IXDSToRat : IDispatch
00133 {
00134 [id(1)]
00135 HRESULT Init();
00136 [id(2)]
00137 HRESULT ParseXDSBytePair([in] BYTE byte1, [in] BYTE byte2, [out] EnTvRat_System *pEnSystem, [out] EnTvRat_GenericLevel *pEnLevel, [out] LONG *plBfEnAttributes);
00138 };
00139
00140
00141 [
00142 object,
00143 uuid(C5C5C5B1-3ABC-11D6-B25B-00C04FA0C026),
00144 dual,
00145 pointer_default(unique)
00146 ]
00147 interface IEvalRat : IDispatch
00148 {
00149 [propget, id(1)]
00150 HRESULT BlockedRatingAttributes([in] EnTvRat_System enSystem, [in] EnTvRat_GenericLevel enLevel, [out, retval] LONG *plbfAttrs);
00151 [propput, id(1)]
00152 HRESULT BlockedRatingAttributes([in] EnTvRat_System enSystem, [in] EnTvRat_GenericLevel enLevel, [in] LONG lbfAttrs);
00153 [propget, id(2)]
00154 HRESULT BlockUnRated([out, retval] BOOL *pfBlockUnRatedShows);
00155 [propput, id(2)]
00156 HRESULT BlockUnRated([in] BOOL fBlockUnRatedShows);
00157 [id(3)]
00158 HRESULT MostRestrictiveRating([in] EnTvRat_System enSystem1, [in] EnTvRat_GenericLevel enEnLevel1, [in] LONG lbfEnAttr1, [in] EnTvRat_System enSystem2, [in] EnTvRat_GenericLevel enEnLevel2, [in] LONG lbfEnAttr2, [out] EnTvRat_System *penSystem, [out] EnTvRat_GenericLevel *penEnLevel, [out] LONG *plbfEnAttr);
00159 [id(4)]
00160 HRESULT TestRating([in] EnTvRat_System enShowSystem, [in] EnTvRat_GenericLevel enShowLevel, [in] LONG lbfEnShowAttributes);
00161
00162 };
00163
00164 [uuid(C5C5C500-3ABC-11D6-B25B-00C04FA0C026)]
00165 library TVRATINGSLib
00166 {
00167 importlib("stdole32.tlb");
00168 importlib("stdole2.tlb");
00169
00170 [uuid(C5C5C5F0-3ABC-11D6-B25B-00C04FA0C026)]
00171 coclass XDSToRat
00172 {
00173 [default] interface IXDSToRat;
00174 };
00175 [uuid(C5C5C5F1-3ABC-11D6-B25B-00C04FA0C026)]
00176 coclass EvalRat
00177 {
00178 [default] interface IEvalRat;
00179 };
00180 };
00181